npm audit默认不显示High/Critical漏洞,因未加--audit-level参数;需手动运行npm audit --audit-level=high,并确保在含package-lock.json的项目根目录执行。

为什么“High”和“Critical”在 npm audit 里不显示
npm audit 默认只报告 low 和 moderate 级别漏洞,Critical 和 High 不出现,大概率是因为没加 --audit-level 参数。VSCode 内置终端不会自动继承这个行为,它只按 npm 默认策略走。
实操建议:
- 先在系统终端(非 VSCode 集成终端)中
cd到含package-lock.json的项目根目录,再运行npm audit --audit-level=high - 若想让 VSCode 终端默认生效,可在工作区
.vscode/settings.json中添加:"terminal.integrated.env.linux": { "NPM_CONFIG_AUDIT_LEVEL": "high" }(macOS/Windows 同理替换 key) -
npm audit --json输出是结构化数据,但 VSCode 的 Problems 面板不解析它——必须配合自定义 task 或插件(如 Snyk)才能转为可点击的错误标记
Fitten Code 的 securityScan.level 怎么选才不卡死
设为 "deep" 会启用数据流污点追踪,扫描耗时增加 40%,但漏报率下降 62%;设为 "light" 几乎不分析跨函数调用,适合内部工具类项目快速过一遍。
关键判断点:
- 金融/医疗类项目必须选
"deep",否则像CWE-89(SQL 注入)这类依赖上下文的漏洞容易漏掉 - 电商类项目用
"standard"平衡速度与覆盖,它会检查硬编码密钥、XSS 模板拼接,但跳过复杂控制流分析 - 设错后最直接的表现是:右键菜单里“查找安全漏洞”选项消失,或扫描后悬浮面板只显示“0 issues”,实际代码里有明显
eval(userInput)却没告警
Snyk 插件的漏洞级别过滤藏在哪
Snyk 插件本身不提供 UI 级别的“只看 Critical”开关,所有分级逻辑都来自 CLI 的 snyk test 输出。它默认展示全部,但你可以用设置控制是否弹窗、是否自动刷新。
真正影响你看到什么的配置项:
-
snyk.showVulnerabilitiesOnStart:决定打开工作区时是否自动拉取并展示漏洞列表(默认 false) -
snyk.autoScanOnOpen:设为 true 才会在打开项目时触发一次snyk test,否则只等你手动点右下角 “Snyk: Rescan” - 高危漏洞太多?在命令面板执行
Snyk: Filter Vulnerabilities,输入Critical,High可临时折叠中低危项(仅前端过滤,不改变扫描结果)
ESLint + security 插件的 severity 怎么映射到 UI 颜色
ESLint 规则的 "error" / "warn" 直接决定 VSCode 中波浪线颜色:"error" 是红色实线,"warn" 是黄色虚线。但很多人配了规则却看不到标红,问题往往出在路径或作用域上。
常见断点排查:
- 确认
.eslintrc.cjs文件放在项目根目录,且plugins: ["security"]和具体规则(如"security/detect-object-injection": "error")在同一配置块内 - TypeScript 项目需在
overrides中单独为**/*.ts启用相同规则,否则 .ts 文件完全不被检查 - VSCode ESLint 插件默认只 lint 当前打开的文件——想全量扫,得手动跑
npx eslint . --ext .js,.ts,不能只靠编辑器实时提示
securityScan.level 和 npm 的 --audit-level 看似都是调级别,但底层机制完全不同:前者控制静态分析深度,后者只是 CLI 输出过滤。混用时容易误判“已修复”,其实只是被过滤掉了。


















