【魔方财务修复2】披露v1 接口里0元购漏洞
修复方法
方案 A:删除整个 /v1 接口(推荐)
打开 data/route/openapi.php,将其中两个 Route::group("v1", ...) 代码块整块注释或删除(第一段是免登录公共接口,第二段是登录后业务接口):
<?php
$origin = request()->header("origin");
think\facade\Route::get("document", "openapi/Document/index");
// think\facade\Route::group("v1", function () { ... 整段注释/删除 ...
// think\facade\Route::group("v1", function () { ... 整段注释/删除 ...如果你的文件是加密的,直接覆盖成改成这样就行了:
<?php
$origin = request()->header("origin");
think\facade\Route::get("document", "openapi/Document/index");
?>这个接口就是/document目录下接口,删了后就不能调用了,如有其他程序需要此接口,按需保留/使用PlanB/PlanC
方案 B:第三方补丁(PlanB的替代方法)
Github:https://github.com/chuzhongyun/zjmf-v1-route-disable-fix
安装方式
zjmf-v1_route_disable_fix.php访问上面下载或者文章后提供下载链接!
- 将
zjmf-v1_route_disable_fix.php放到魔方财务项目根目录。 - 在
public/index.php中加载补丁。补丁应放在 ThinkPHP 基础文件之后:
require CMF_ROOT . 'vendor/thinkphp/base.php';
require CMF_ROOT . 'zjmf-v1_route_disable_fix.php'; // <-- 添加此行
Container::get('app', [APP_PATH])->run()->send();如果已经安装其他启动补丁,保持各自的 require 行即可。
卸载方式
从 public/index.php 中删除对应的 require 行,然后删除项目根目录下的 zjmf-v1_route_disable_fix.php。
以上四种方法不会对魔方原本产生任何问题,上下游对接也不会产生任何问题,受影响的只有基于/document目录下API文档所开发的财务套壳等第三方程序。
网盘资源3 个
最新打赏
