来源:2026-09-18 真机现场(192.168.0.173:38881,PDD 我的订单列表)分析回填停滞时发现的安全缺口,与停滞原因无关,独立优先修复。
BackfillPagePolicy.forbidden 收录了 再次购买,但 PDD 当前订单列表上的实际按钮文案是 再次拼单:
BackfillPagePolicy.forbidden
再次购买
再次拼单
forbidden = listOf("确认收货","申请退款","催发货","去支付","立即支付", "提交订单","付款","退款","取消订单","再次购买","删除订单")
真机现场实测:再次拼单 节点 clickable=true,且通过了 safe()(子树无禁词、几何不与禁词重叠)。它当前没有被点到,仅仅是因为 cards() 的其它条件恰好不命中它——属于运气,不是设计保障。
clickable=true
safe()
cards()
更多 同样通过 safe(),而「更多」菜单里通常含取消订单/删除订单。
更多
forbidden
[必须] 只扩禁词表,不放宽任何既有判据。
[必须]
list()
./gradlew :app:testDebugUnitTest。
./gradlew :app:testDebugUnitTest
回填只读边界的禁词清单是长期事实,需更新 Business-Rules-and-Glossary 中回填相关条目。
No dependencies set.
The note is not visible to the blocked user.
问题
BackfillPagePolicy.forbidden收录了再次购买,但 PDD 当前订单列表上的实际按钮文案是再次拼单:真机现场实测:
再次拼单节点clickable=true,且通过了safe()(子树无禁词、几何不与禁词重叠)。它当前没有被点到,仅仅是因为cards()的其它条件恰好不命中它——属于运气,不是设计保障。更多同样通过safe(),而「更多」菜单里通常含取消订单/删除订单。方案
再次拼单加入forbidden。更多加入forbidden:它本身不是终态动作,但展开后暴露的是订单动作,回填全程只读,没有任何理由点它。[必须]只扩禁词表,不放宽任何既有判据。非目标
cards()/list()/safe()的结构判据(另见后续工单)。验收
再次拼单、更多无法通过safe()。验证
./gradlew :app:testDebugUnitTest。文档影响
回填只读边界的禁词清单是长期事实,需更新 Business-Rules-and-Glossary 中回填相关条目。