开源电商网站 Magento / Adobe Commerce 又一例后台无法保存产品信息的问题修复

更新日期: 2024-06-25 阅读次数: 565 字数: 614 分类: magento

问题现象

有两个已知问题:

  1. 打开后台分类管理,Manage Categories,显示的是乱码,实际上是没有渲染前的 HTML 源代码
  2. 无法新建产品,也无法编辑保存已有的商品信息

版本

这个版本比较久远。

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 聊聊, 查看更多联系方式