SuperAPI AI 工具集

security-review

安全与审计

查看项目

更新于 10-15 14:55

技能介绍

Security Review 是一个代码安全审查技能,目标是在开发过程中确保代码遵循安全最佳实践并识别潜在漏洞。根据资料,它应在以下场景激活:实现身份验证或授权、处理用户输入或文件上传、创建新的 API 端点、处理密钥或凭据、实现支付功能、存储或传输敏感数据、集成第三方 API。

主要能力以安全清单形式组织,共十个方面。第一,密钥管理:禁止硬编码 API 密钥、令牌或密码,要求全部放入环境变量,确保 .env.local 在 .gitignore 中、git 历史中无密钥、生产密钥存放在托管平台(如 Vercel、Railway)。第二,输入验证:使用 zod 等定义校验模式,在处理前验证;文件上传需校验大小(示例为最大 5MB)、类型与扩展名;采用白名单而非黑名单;错误信息不泄露敏感信息。第三,SQL 注入防护:禁止拼接 SQL 字符串,要求使用参数化查询或 ORM/查询构建器,并正确使用 Supabase 查询。第四,认证与授权:令牌应存放在 httpOnly cookie 而非 localStorage;敏感操作前先做授权检查;在 Supabase 中启用行级安全(RLS)并实现基于角色的访问控制。第五,XSS 防护:使用 DOMPurify 等对用户提供的 HTML 进行净化,配置内容安全策略(CSP)响应头,避免渲染未验证的动态内容。第六,CSRF 防护:在改变状态的操作上校验 CSRF 令牌,cookie 设置 SameSite=Strict,可采用双重提交 cookie 模式。第七,速率限制:对所有 API 端点限流,对昂贵操作(如搜索)使用更严格的限制,支持基于 IP 与基于用户的限流。第八,敏感数据暴露:日志中不得记录密码、令牌或密钥,对用户返回通用错误信息,详细错误仅记录在服务端日志,不向用户暴露堆栈跟踪。第九,区块链(Solana)安全:验证钱包签名、校验交易接收方与金额、交易前检查余额、避免盲目签名交易。第十,依赖安全:定期运行 npm audit、npm audit fix、npm update、npm outdated,提交锁文件,在 CI/CD 中使用 npm ci,启用 Dependabot。

使用方式上,该技能以清单和正反代码示例呈现,开发者可对照检查代码,并逐项完成验证步骤。资料还提供自动化安全测试示例,覆盖认证(期望 401)、授权(期望 403)、输入验证(期望 400)和速率限制(期望出现 429)。此外提供部署前安全检查清单,涵盖密钥、输入验证、SQL 注入、XSS、CSRF、认证、授权、速率限制、HTTPS、安全响应头、错误处理、日志、依赖、行级安全、CORS、文件上传以及钱包签名(如涉及区块链)等核对项。

适用场景包括 Web 应用与 API 开发中的安全审查,尤其是涉及认证、支付、用户输入、文件上传、第三方集成与区块链交易的场景。限制方面,资料未提供该技能的具体安装命令、运行环境要求、支持的平台范围、收费方式或效果保证,这些信息暂未提供。资料中给出的代码示例与配置(如 Next.js、Supabase、Express、Solana)仅作为示例,实际使用需结合项目技术栈调整。