tamakyi
|
74312fba58
|
fix(honeypot): cleanPath 处理零宽字符,并在清洗生效时打诊断日志
上一版只用 strings.TrimSpace,实测漏掉「看不见但不算 White_Space」的字符:
cleanPath("\u200b/wp-login.php") = "/\u200b/wp-login.php"
(零宽没被删,还因为首字符不是 '/' 多补了一个斜杠,拼出更怪的路径)
改为 TrimFunc 同时匹配 unicode.IsSpace 与 U+200B/200C/200D/FEFF,且只处理首尾
—— 中间的零宽字符可能是攻击 payload,取证要保留原样。
另加诊断日志:清洗前后不一致时 WARN,用 %q 打出原始值。
测试环境出现过「记录里 path 带前导空白、本地链路却复现不出来」的情况,
不可见字符必须转义输出才定位得到。
测试:TestCleanPath 补零宽空格 / BOM / 中间零宽字符保留三个用例。
|
2026-10-21 16:18:25 +08:00 |
|
tamakyi
|
bfdc5089c5
|
docs(memory): 记录 ini 键名静默失效的根因与配置约定
|
2026-10-21 13:41:49 +08:00 |
|
tamakyi
|
cbb0c51a14
|
docs(memory): 记录蜜罐表体积实测数据与 PostgreSQL 死元组/VACUUM 语义
|
2026-10-21 13:17:06 +08:00 |
|
tamakyi
|
7d52155411
|
fix(honeypot): 蜜罐封禁与 enable_auto_ban 解耦 + 泄露扫描后缀匹配
- autoban: 新增 RecordHoneypot 独立通道(不受 enabled 约束)+ 独立阈值/时长;
IsBanned 不再因 enable_auto_ban=false 而忽略已有封禁
- honeypot: 新增 honeypotSuffixes 后缀匹配,覆盖 /backup.zip、/db.sql、/id_rsa.pem
- 新增配置 honeypot_threshold / honeypot_ban_minutes
- 补测试:autoban/honeypot_test.go、route 侧禁用自动封禁仍封禁
|
2026-10-21 12:36:33 +08:00 |
|
tamakyi
|
79051acae8
|
miguan v1
|
2026-10-21 12:09:28 +08:00 |
|