加固-04(P0-03): api/monitor.php 监控脚本鉴权 + 修复补单逻辑
- 增加鉴权:监控调用须带 ?key=monitor_key;密钥首次调用时自动生成 (64hex,持久化到 sq_config setname='monitor_key',setname.inc.php 增加种子行),hash_equals 校验,不匹配返回 403。杜绝匿名触发 补单/清库。key 可通过 SELECT setvalue FROM sq_config WHERE setname='monitor_key' 获取,配置到 cron/监控服务。 - 修复 if(!!$result = select_limit_row(...) && count(...) > 0) 运算符优先级断逻辑:拆为先取值再判断。 - 修复未定义变量 $tradeno(原 update 条件引用了从未赋值的 $tradeno)。 - trade_do 补单改为仅在状态 2->3 翻转成功(影响行数>0)时执行; 影响行=0(已被先行进程完成)则跳过,防并发/重复补单。 - 修复 sq_apps 空表时 !array() 为真 导致误报"获取应用信息发生错误" (改为 false === 判断)。 - 结尾输出 JSON 结果(log/error),便于监控服务核对。 验证: 无key/错key 均 403;正确key 200;构造 status=2 测试订单, 首跑补单(agent 余额 100->110,trade 2->3),二跑无重复补单。 php -l 通过。
This commit is contained in:
@@ -33,5 +33,7 @@ $SetName = array(
|
||||
'maindrawer'=>'',
|
||||
'token'=>'',
|
||||
'sid'=>'0',
|
||||
'stime'=>'0'
|
||||
'stime'=>'0',
|
||||
// P0-03: api/monitor.php 监控鉴权密钥(首次访问监控脚本时自动生成,勿手工置空)
|
||||
'monitor_key'=>''
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user