问题现象
有两个已知问题:
- 打开后台分类管理,Manage Categories,显示的是乱码,实际上是没有渲染前的 HTML 源代码
- 无法新建产品,也无法编辑保存已有的商品信息
版本
这个版本比较久远。
Magento ver. 1.7.0.2。现在都已经 2.4.7 版本了,估计那个时候还没有改名 Adobe Commerce 吧。
乱码问题
登录了后台,打开分类管理,链接如:
https://www.sunzhongwei.com/index.php/my_admin_url/catalog_category/edit/key/xxxxx/?isAjax=true
从浏览器的调试工具中可以看到,一个异步加载的页面接口,返回的数据格式非常诡异:
<a href="https://www.xxx.com/" style="position:absolute; left:-8786px; top:0">xxx</a>
{"content":"\n
<div class=\"content-header\">
正常的 json 返回数据前,被插入了一行非法网站的链接,所以导致 json 数据解析异常,也就导致了页面乱码。
产品信息无法保存问题
我以为这次遇到的无法保存问题,跟之前的 ES 接口异常是一样的问题,初步猜测是 ES 服务挂了。实际上,并不是。通过浏览器调试工具看,跟乱码问题的原因是一样的,都是在返回的 json 接口数据前加上了一行非法网站链接。
到服务器上排查
通过 history 操作历史,找到了 magento 网站的目录,在安装目录下搜索:
# grep xxx.com -r . --exclude-dir=var
./index.php:<a href="https://www.xxx.com/" style="position:absolute; left:-8786px; top:0">xxx</a>
注意排除掉 var 目录,主要是 var/log 目录下的日志文件太大,影响搜索效率。
果然定位到了,就是 index.php 文件被黑客篡改了。
那个文件的第一行被加上了链接。删除,就解决了问题。再次刷新后台,就能看到显示正常了,产品信息保存功能也都正常了。
最好是参考 第二次 php 网站被黑的经历 禁止修改 index.php 文件,否则这个文件还会被篡改,毕竟被黑的根源并没有找到。
terminal capability "cm" required
这台服务器是一台 centos 6 的服务器,在上面执行 vim 编辑文件,总是显示界面混乱,不方便编辑。加上环境变量就可以正常操作了:
export TERM=xterm; vim index.php
如果是自己的服务器,为了避免以后每次都输入,可以加入 .bashrc 中:
export TERM=xterm
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式