智简魔方财务上游信息泄露问题与修复详细教程

智简魔方财务上游信息泄露问题与修复详细教程

一、问题说明

魔方财务系统前台接口返回数据中,可能包含上游相关敏感字段。

如果这些字段未经处理直接输出,可能造成上游信息泄露,带来业务风险。

本次修复采用入口补丁过滤方式处理:

  • 不修改数据库
  • 不大范围改动业务代码
  • 在应用入口处引入一个独立修复文件
  • 对指定接口返回的 JSON 数据进行过滤
  • 将敏感字段清空、置零或替换为安全值后再输出

二、修复目录建议

不建议将修复文件直接放在网站根目录。

建议单独创建一个修复目录,例如:

/patches/

然后将修复文件放到:

/patches/upstream_hide.php

推荐目录结构如下:

/app
/public
/vendor
/patches
    upstream_hide.php

这样做的好处:

  • 目录职责更清晰
  • 便于维护和回滚
  • 避免根目录文件过多、过乱
  • 更方便做权限控制和审计

三、修复方法

1. 创建修复目录

在网站根目录创建目录:

mkdir -p /你的站点根目录/patches

2. 放置修复文件

将修复补丁文件保存为:

/patches/upstream_hide.php

3. 修改 public/index.php

当前入口文件是标准结构:先加载 ThinkPHP 基础文件,再启动应用。修复时,只需要在加载基础文件后,再引入补丁文件即可。

public/index.php 修改为下面内容:

<?php
​
namespace think;
​
// 调试模式开关
define('APP_DEBUG', false);
// 是否强制路由
define('URL_ROUTE_MUST',true);
// 定义CMF根目录,可更改此目录
define('CMF_ROOT', dirname(__DIR__) . '/');
// 定义CMF数据目录,可更改此目录
define('CMF_DATA', CMF_ROOT . 'data/');
// 定义下载文件存放目录
define('DOWN_PATH', CMF_ROOT . 'downloads/');
define('DOWN_PATH1', CMF_ROOT . 'public/downloads/');
define('TICKET_DOWN_PATH', DOWN_PATH . 'ticket/');
define('SUPPORT_DOWN_PATH', DOWN_PATH1 . 'support/');
define('DATABASE_DOWN_PATH', DOWN_PATH . 'database/');
// 定义文件上传目录
define('UPLOAD_PATH',CMF_ROOT . 'uploads/');
// 定义文件默认上传目录
define('UPLOAD_DEFAULT',UPLOAD_PATH . 'common/default/');
// 定义应用目录
define('APP_PATH', CMF_ROOT . 'app/');
// 定义网站入口目录
define('WEB_ROOT', __DIR__ . '/');
​
// 加载基础文件
require CMF_ROOT . 'vendor/thinkphp/base.php';
​
// 加载修复补丁
require CMF_ROOT . 'patches/upstream_hide.php';
​
// 执行应用并响应
Container::get('app', [APP_PATH])->run()->send();

四、修复文件作用说明

/patches/upstream_hide.php 的作用是:

  • 拦截指定风险接口的 JSON 返回内容
  • 过滤上游敏感字段
  • 将敏感值替换为安全值再输出
  • 尽量减少对其他接口的影响

例如可处理这类字段:

  • upstream_product_shopping_urlnull
  • upstream_pid0
  • zjmf_api_id0
  • api_typenormal

五、部署完成后生效操作

修改完成后,建议执行以下操作之一:

  • 重启 PHP-FPM
  • 重载 Web 服务

否则可能仍然使用旧缓存代码。

六、验证方法

修复完成后,访问原来会返回敏感字段的接口,检查返回值是否已被处理。

重点确认这些字段是否已变成安全值:

  • upstream_product_shopping_urlnull
  • upstream_pid0
  • zjmf_api_id0
  • api_typenormal

七、回滚方法

如果修复后需要恢复:

  1. 删除 /patches/upstream_hide.php
  2. public/index.php 改回原始版本
  3. 重启 PHP-FPM 或清理缓存

八、修复文件下载

  1. 打开魔方财务系统 public目录把index.php重命名为index.php.bak
  2. 下载修复文件,上传到站点根目录解压即可

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 共8条

请登录后发表评论