Files

36 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 约束规则
## 硬性约束
1. 不把模型推断直接标记为已验证事实
2. `high` 置信度必须包含真实运行时调用或真实差分匹配证据
3. 不批量执行未知 Webpack module factory
4. 默认不保留敏感字段原文
5. 主动调用候选前必须检查 `safe_to_invoke`
6. JSRPC 只负责调用页面真实函数,禁止重写加密算法
7. 没有真实入口和请求字段关联时,不得生成可用于 Burp 的成功转换
8. 生成器中的 JSRPC 地址必须归一化,禁止产生 `/go/go`;完整报文和 wrapper 两种 Burp 输入必须都有回归测试
9. 仅凭 12080 端口、Flask `/healthz` 或页面出现“已注册”不得判定交付成功,必须完成 action 级实时调用
10. 浏览器断线、超时、暂停、导航或文档身份变化后,旧 tab/document/元素引用和旧 action 结果全部失效;必须重新绑定并重新验证,不能盲目重放非幂等动作
11. 最终报告必须能回溯到 `artifacts/browser_evidence.json`;缺少明文、最终请求体、route、HTTP 状态或业务响应任一项时,只能报告为未确认
## 能力边界
- **能做**:页面导航、evaluate_script、initScript 预注入、Hook fetch/XHR/crypto/WebSocket/库、Webpack 模块捕获、证据驱动候选发现、差分验证
- **不能做**:闭包未导出函数、WASM 未导出内部函数、Service Worker 内部闭包、ES module import 拦截、VMP 静态还原、CSP WebSocket 绕过、跨域 iframe、VM 保护 JS
## 策略值
- `global_path`:函数在 window 上
- `runtime_hook`:通过 Hook 调用栈发现
- `webpack_export`:Webpack 模块导出
- `async_crypto`:异步加密
- `initscript_hook`:initScript Hook
- `static_ast`:静态 AST 分析
- `source_analysis`:源码分析 + Python 实现
- `manual_observed_only`:有证据但未确认
- `unsupported`:所有方法都失败
## 候选不变量
- `verified=true` 必须有至少一条 `verification` 类型证据
- `confidence=high` 必须同时满足 `verified=true`
- 所有候选必须标记来源
- 失败验证不得删除,应保留为负证据