WTCLOSE1 收口测试号全域证据 dry-run

这个提交包含在:
2026-05-20 21:09:54 +08:00
父节点 eab48cc7e4
当前提交 1567ff10ac
共修改 10 个文件,包含 76 行新增和 26 行删除
@@ -107,6 +107,8 @@ write_manual_checklist() {
- C:必须申请人手选审批人。
- D:当前看不到或模板未配置。
小团队默认规则:公司不到 10 人,按一层直属主管或指定审批角色自动带出审批人;主管链缺失、审批人不可见/停用/未绑定或命中自审时,由管理员兜底或阻断。当前目标按 A 执行,B/C/D 均视为阻断 WEXT1-LIVE 和 WREAL1 的 finding。
需要记录的字段:模板入口、适用范围、审批人规则、是否允许申请人手选、是否可能自审、主管链缺失时表现、审批人不可见或停用时表现。
边界:不要记录 Secret、token、EncodingAESKey、完整 userid、完整审批单号、完整 template_id、表单值、附件、评论或原始 payload。
@@ -115,7 +117,10 @@ EOF
run_privacy_smoke() {
local sensitive_pattern='access_token=[A-Za-z0-9._-]{8,}|1[3-9][0-9]{9}|[[:alnum:]._%+-]+@[[:alnum:].-]+\.[[:alpha:]]{2,}|-----BEGIN|BEGIN [A-Z ]*KEY|"((token|secret|password|EncodingAESKey|encodingAESKey|sp_no|spNo|template_id|templateId|userid|userId|external_userid|externalUserId|external_user_id))"[[:space:]]*:[[:space:]]*"[^"*]{8,}"|\b20[0-9]{12,}\b|"(raw|rawPayload|raw_payload|payload|xml|ciphertext|Encrypt|formValue|formValues|attachments|comments)"[[:space:]]*:'
if grep -RInE "$sensitive_pattern" "$REPORT_DIR"; then
local matches
matches="$(grep -RInE "$sensitive_pattern" "$REPORT_DIR" | grep -vE 'HRWDTEST-[0-9]{14}' || true)"
if [[ -n "$matches" ]]; then
printf '%s\n' "$matches"
log "[wauto1][FAIL] privacy smoke matched sensitive pattern"
STATUS=1
else
@@ -227,7 +232,7 @@ const manualGates = [
id: "WAPPR1",
status: "PENDING_MANUAL_CONFIRMATION",
owner: "HYD000006",
requiredEvidence: "请假、补卡、外出、加班逐模板审批人自动化选项 A/B/C/D",
requiredEvidence: "请假、补卡、外出、加班逐模板均达到 A;小团队采用一层主管/指定审批角色 + 管理员兜底",
},
{
id: "WEXT1-LIVE",