fix: 无连字符 KEY 变量 + COBOL 专家 10 大攻击面测试
COBOL 专家对抗性审查发现: - 老式 COBOL 的 WSKEY1/WSKEY2(无连字符)未被 L1 关键词检测 - 结构性检测信号 4 和 5 覆盖不全 修复: - L1 增加 re:WS[A-Z0-9]*KEY[A-Z0-9]* 覆盖无连字符 KEY 命名 - _matches_key_comparison 扩展支持无连字符变量 - has_key_var 注入扩展支持无连字符 - 结构性检测信号 4 增加 WS\w+ 比较模式 - 结构性检测信号 5 增加两个单独 OPEN 的支持 新测试: - test_cobol_expert_attacks — 4 个内联攻击测试 (跨行AT END, 无连字符WSKEY, GO TO风格, NOT=比较) - test-adversarial: 8 个样本文件攻击测试 全回归: 767 passed (+3 new, 0 failures)
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
* ==== TYPE: ADV-MATCH-TINY ====
|
||||
* FEATURE: Minimal matching: only 1 read, 1 IF
|
||||
* STATEMENT: IF / READ
|
||||
* BRANCHES: 2, DECISIONS: 1
|
||||
* ADVERSARIAL: Bare-minimum matching program
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. TNYMT.
|
||||
ENVIRONMENT DIVISION.
|
||||
INPUT-OUTPUT SECTION.
|
||||
FILE-CONTROL.
|
||||
SELECT IN-FILE ASSIGN TO 'INDATA.DAT'.
|
||||
DATA DIVISION.
|
||||
FILE SECTION.
|
||||
FD IN-FILE.
|
||||
01 IN-REC.
|
||||
05 IN-KEY PIC X(10).
|
||||
05 IN-DATA PIC X(50).
|
||||
WORKING-STORAGE SECTION.
|
||||
01 WS-KEY PIC X(10).
|
||||
01 WS-EOF PIC X VALUE 'N'.
|
||||
PROCEDURE DIVISION.
|
||||
MAIN.
|
||||
OPEN INPUT IN-FILE.
|
||||
READ IN-FILE INTO IN-REC
|
||||
AT END MOVE 'Y' TO WS-EOF.
|
||||
MOVE IN-KEY TO WS-KEY.
|
||||
IF WS-KEY = SPACES
|
||||
DISPLAY 'EMPTY'
|
||||
ELSE
|
||||
DISPLAY WS-KEY.
|
||||
CLOSE IN-FILE.
|
||||
STOP RUN.
|
||||
Reference in New Issue
Block a user