安全与风控
在审计 Web 应用或 REST API 代码时按…
对代码库、用户提供的文件/目录、认证授权实现、REST API、数据保护、配置部署进行安全审计,或上线前检查时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
在审计 Web 应用或 REST API通用
解决思路
- 先识别应用类型:Web app、REST API、SPA、SSR 或混合架构。
- 按优先级扫描:先查 CRITICAL 规则,再查 HIGH,最后查 MEDIUM。
- 按类别优先级逐项审查:CRITICAL 为 Authentication & Authorization、Data Protection、Input/Output Security;HIGH 为 Configuration & Headers;MEDIUM 为 API & Monitoring。
- 从 @rules/ 目录加载具体规则文件逐条审查。
- 检查 broken-access-control:是否存在缺失授权、IDOR、权限提升;确认访问资源前校验所有权或管理员身份。
- 检查 authentication-failures:是否存在弱认证、缺少 MFA、会话问题;密码要求至少 12 位且含大小写字母、数字、特殊字符。
- 检查 cryptographic-failures:是否使用弱加密、明文存储、错误哈希;密码哈希使用 bcrypt(cost 12)而非 MD5。
- 检查 sensitive-data-exposure:日志/响应中是否泄露 PII、错误信息是否泄露内部细节;只返回必要字段。
- 检查 data-integrity-failures:是否信任未签名数据、不安全反序列化;JWT 必须验证签名而非直接解码 payload。
- 检查 secrets-management:是否硬编码密钥、暴露环境变量;密钥从 process.env 读取并在缺失时抛错。
- 检查 injection-attacks:SQL、XSS、NoSQL、Command、Path Traversal 注入;使用参数化查询而非字符串拼接。
- 检查 ssrf-attacks:是否请求用户提供的 URL、访问内网;用域名 allowlist 校验 URL hostname。
- 检查 file-upload-security:是否无限制上传、缺少 MIME 校验;校验允许的 MIME 类型与扩展名。
- 检查 redirect-validation:是否存在开放重定向;将 return URL 限制在允许路径列表中。
- 检查 insecure-design:是否存在安全反模式(如通过隐藏头做权限);使用基于角色的访问控制。
- 检查 security-misconfiguration:是否使用默认配置、debug 模式、泄露堆栈;错误只记录在服务端,返回通用错误信息。
- 检查 security-headers:是否设置 CSP、HSTS、X-Frame-Options、X-Content-Type-Options 等。
- 检查 cors-configuration:是否过度宽松;不要用通配符配合 credentials,改为校验具体 origin 白名单。
- 检查 csrf-protection:是否有 CSRF token、SameSite cookie;设置 SameSite=Strict 并校验 token。
- 检查 session-security:cookie 标志、JWT 问题、token 存储;cookie 设置 Secure、HttpOnly、SameSite=Strict、Path、Max-Age。
- 检查 api-security:REST API 漏洞、mass assignment;只显式解构并更新允许字段。
- 检查 rate-limiting:是否缺少限流、暴力破解防护;按 IP 调用 ratelimit.limit 并在超限时返回 429。
- 检查 logging-monitoring:日志是否不足、是否记录敏感数据;记录事件时排除密码、SSN 等敏感字段。
- 检查 vulnerable-dependencies:是否使用过时包、已知 CVE;运行 npm audit 和 npm audit fix。
- 按常见漏洞模式快速排查:未校验的用户输入、缺少授权中间件的路由、含 password/secret/key 的硬编码字符串、查询中的字符串拼接、dangerouslySetInnerHTML 或 .innerHTML、密码使用 md5/sha1、缺少 CSP/HSTS 等头、带 credentials 的 CORS 通配符、缺少 Secure/HttpOnly/SameSite 的 cookie、文件路径中的未校验用户输入。
- 按严重级别生成报告:Severity(CRITICAL | HIGH | MEDIUM | LOW)、Category(规则名)、File(路径与行号)、Issue(问题)、Impact(安全后果)、Fix(修复代码示例)。
- 按严重级别安排修复:CRITICAL 立即修复(SQL/XSS/命令注入、敏感端点缺少认证、硬编码密钥、明文密码存储、IDOR);HIGH 尽快修复(缺少 CSRF 防护、弱密码要求、缺少安全头、过度宽松 CORS、不安全会话管理);MEDIUM 有空修复(缺少限流、日志不完整、无已知漏洞的过时依赖、非关键字段缺少输入校验);LOW 改进(缺少可选安全头、非生产环境详细错误、次优加密参数)。
适用边界 · 注意事项
- 非 Web 应用或非 REST API 的项目(如纯 CLI 工具、嵌入式固件)不适用。
- 仅做功能开发或性能优化、不涉及安全审计时无需使用。
- 没有代码或配置可审查、仅做概念咨询时无法按此流程执行。