【魔方财务修复2】披露v1 接口里0元购漏洞

超级管理员
超级管理员 社区主理
管理员
财务系统 27 浏览 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访问上面下载或者文章后提供下载链接!

  1. zjmf-v1_route_disable_fix.php 放到魔方财务项目根目录。
  2. 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 个
百度网盘百度网盘 · 点击立即下载,扫码保存到网盘
网盘资源UC网盘 · 点击立即下载,扫码保存到网盘
夸克网盘夸克网盘 · 点击立即下载,扫码保存到网盘
评论0
回复 · 0
还没有回复