anon-log-flood-batch-cap
[target] http://localhost:20098 容器=wt_h8_tp8
[常量] 日志封顶 MAX=1000(读自 common.php) 批量上限=500(读自 AdmincomController.php)
── G · 匿名上传回报的日志封顶
✅ G1 匿名 POST 无参数 → HTTP 200 且 jnc_log 恰好 +1(封顶未触发时的原形态)
HTTP 200,jnc_log 4 → 5
✅ G2 🔴 连打 1001 次 → jnc_log 增量 1000 ≤ 上限 1000(不是线性增长)
请求 1001 次,jnc_log 4 → 1004(增量 1000)
✅ G3 🔴「已记满」汇总行恰好 1 条(不是 0、也不是每次都写)
本次新增汇总行 1 条
✅ G4 🔴 越过上限后再打 20 次 → jnc_log 增量恰好 0(已静默,但请求照常被拒)
jnc_log 1004 → 1004
✅ G4b 守卫:静默之后端点仍然拒绝(不是变成放行)
响应体应为字面量 false
✅ G6 🔴 本次新产生的日志里,HTTP_COOKIE / DOCUMENT_ROOT 出现 0 次($_SERVER 转储已删)
本次新增泄密行 0 条
✅ G7 (静态)全仓日志调用里不再有 $_SERVER 整体转储(含匿名到不了的分支)
0 处
── G5 · 守卫:合法上传路径
✅ G5 🔴 守卫:合法上传回报仍然成功(返回 <url>?scale=LD_F,且 jnc_pic +1)
响应 https://jnc-main-cd.oss-cn-chengdu.aliyuncs.com/6p40qjry/images/user/0/20260916/v6lcqu30mnl7/e2eupload-710225.
jnc_pic 1095 → 1096
── G8 · 编辑器鉴权拒绝的日志封顶(另一条链、另一个桶)
✅ G8a 匿名打「存在但无权」的 tplid → HTTP 404 且 jnc_log 恰好 +1(封顶未触发时的原形态)
HTTP 404,jnc_log 1004 → 1005
✅ G8b 🔴 连打 1001 次 → jnc_log 增量 1000 ≤ 上限 1000(不是线性增长)
请求 1001 次,jnc_log 1004 → 2004
✅ G8c 🔴「已记满」汇总行恰好 1 条(且用的是编辑器链自己的文案,不是上传链的)
本次新增汇总行 1 条
✅ G8d 🔴 越过上限后再打 20 次 → jnc_log 增量恰好 0(已静默)
jnc_log 2004 → 2004
✅ G8e 🔴 守卫:静默之后端点仍然拒绝(404,不是变成放行)
HTTP 404
── H · 后台 9 个批量方法的 500 上限(双向)
✅ H0 前置:确实以 admin 身份登录(否则下面的「放行」方向是恒真断言)
会话 adminname=admin
✅ H-article_batch_edit 拒:501 个 → 被拒(页面出现「参数错误」)且 jnc_article 行数不变
HTTP 200,文案命中=true,jnc_article 24 → 24
✅ H-article_batch_edit 放:恰好 500 个 → 跑完并给出「操作成功」,且 jnc_article 行数不变
HTTP 200,成功信号命中=true,jnc_article 24 → 24
✅ H-template_batch_edit 拒:501 个 → 被拒(页面出现「参数错误」)且 jnc_template 行数不变
HTTP 200,文案命中=true,jnc_template 371 → 371
✅ H-template_batch_edit 放:恰好 500 个 → 跑完并给出「操作成功」,且 jnc_template 行数不变
HTTP 200,成功信号命中=true,jnc_template 371 → 371
✅ H-usertemplate_batch_edit 拒:501 个 → 被拒(页面出现「参数错误」)且 jnc_template 行数不变
HTTP 200,文案命中=true,jnc_template 371 → 371
✅ H-usertemplate_batch_edit 放:恰好 500 个 → 跑完并给出「操作成功」,且 jnc_template 行数不变
HTTP 200,成功信号命中=true,jnc_template 371 → 371
✅ H-product_batch_edit 拒:501 个 → 被拒(页面出现「参数错误」)且 jnc_production 行数不变
HTTP 200,文案命中=true,jnc_production 95 → 95
✅ H-product_batch_edit 放:恰好 500 个 → 跑完并给出「操作成功」,且 jnc_production 行数不变
HTTP 200,成功信号命中=true,jnc_production 95 → 95
✅ H-jifenproduct_batch_edit 拒:501 个 → 被拒(页面出现「参数错误」)且 jnc_improduction 行数不变
HTTP 200,文案命中=true,jnc_improduction 8 → 8
✅ H-jifenproduct_batch_edit 放:恰好 500 个 → 跑完并给出「操作成功」,且 jnc_improduction 行数不变
HTTP 200,成功信号命中=true,jnc_improduction 8 → 8
✅ H-articleblog_batch_edit 拒:501 个 → 被拒(页面出现「参数错误」)且 jnc_articlem9message 行数不变
HTTP 200,文案命中=true,jnc_articlem9message 8 → 8
✅ H-articleblog_batch_edit 放:恰好 500 个 → 跑完并给出「操作成功」,且 jnc_articlem9message 行数不变
HTTP 200,成功信号命中=true,jnc_articlem9message 8 → 8
✅ H-dd_batch_edit 拒:501 个 → 被拒(页面出现「参数错误」)且 jnc_dd 行数不变
HTTP 200,文案命中=true,jnc_dd 390 → 390
✅ H-dd_batch_edit 放:恰好 500 个 → 跑完并给出「操作成功」,且 jnc_dd 行数不变
HTTP 200,成功信号命中=true,jnc_dd 390 → 390
✅ H-deletealbumpic 拒:501 个 → 被拒(页面出现「参数错误」)且 jnc_pic 行数不变
HTTP 200,文案命中=true,jnc_pic 1096 → 1096
✅ H-deletealbumpic 放:恰好 500 个 → 跑完并给出「302」,且 jnc_pic 行数不变
HTTP 302,成功信号命中=true,jnc_pic 1096 → 1096
✅ H-ms3_batch_edit 拒:501 个 → 被拒(页面出现「参数错误」)且 jnc_materialsort3 行数不变
HTTP 200,文案命中=true,jnc_materialsort3 2306 → 2306
✅ H-ms3_batch_edit 放:恰好 500 个 → 跑完并给出「操作成功」,且 jnc_materialsort3 行数不变
HTTP 200,成功信号命中=true,jnc_materialsort3 2306 → 2306
[清理] 删掉本次探测日志 2000 行,残留 0 行 ✔
✅ Z1 🔴 探测日志已清干净
[清理] 删掉 G5 种的 jnc_pic 1 行,残留 0 行 ✔
✅ Z2 🔴 G5 种子行已清干净
[清理] 封顶计数器归零:ossreport_reject / editctx_reject —— 残留 0 个
✅ Z3 🔴 两个封顶计数器已归零(留着会静音后面的用例)
清单 2 个(期望 2)/ 残留 0 个(期望 0):BAD=0
========================================================
PASS=35 FAIL=0