安全审查技能(Security Review Skill)旨在确保代码遵循安全最佳实践,并帮助识别潜在漏洞。
用途 当实现身份认证或授权、处理用户输入或文件上传、创建新的 API 端点、处理密钥或凭据、实现支付功能、存储或传输敏感数据、集成第三方 API 时,可启用该技能进行安全审查。
主要能力 该技能以检查清单形式覆盖十个安全领域:密钥管理、输入验证、SQL 注入防护、认证与授权、XSS 防护、CSRF 防护、速率限制、敏感数据暴露、区块链安全(Solana)以及依赖安全。每个领域包含反例(FAIL)与正例(PASS)代码,以及对应的验证步骤清单。此外还提供自动化安全测试示例与部署前安全检查清单。
各领域要点 密钥管理:禁止硬编码 API 密钥、令牌或密码,所有密钥应放在环境变量中;确保 .env.local 加入 .gitignore、Git 历史中无密钥、生产密钥存放在托管平台(Vercel、Railway)。 输入验证:使用 schema 校验用户输入(如 Zod);文件上传需校验大小、类型与扩展名;使用白名单而非黑名单;错误信息不得泄露敏感信息。 SQL 注入防护:禁止字符串拼接 SQL,必须使用参数化查询;正确使用 ORM/查询构建器;Supabase 查询需正确净化。 认证与授权:令牌应存储在 httpOnly cookie 而非 localStorage;敏感操作前进行授权检查;在 Supabase 中启用行级安全(RLS)并实施基于角色的访问控制。 XSS 防护:使用 DOMPurify 等对用户提供的 HTML 进行净化;配置内容安全策略(CSP),从严格策略起步,避免默认使用 'unsafe-inline' 或 'unsafe-eval';利用 React 内置的 XSS 防护。 CSRF 防护:对状态变更操作使用 CSRF 令牌;cookie 设置 SameSite=Strict;实现双重提交 cookie 模式。 速率限制:为所有 API 端点添加速率限制,对高开销操作(如搜索)采用更严格的限制,支持基于 IP 与基于用户的限制。 敏感数据暴露:日志中不得包含密码、令牌或密钥;对用户返回通用错误信息,详细错误仅记录在服务端日志;不得向用户暴露堆栈跟踪。 区块链安全(Solana):验证钱包签名、校验交易详情(收款方、金额、余额),避免盲签交易。 依赖安全:定期运行 npm audit、npm audit fix、npm update、npm outdated;始终提交 lock 文件;在 CI/CD 中使用 npm ci;启用 GitHub Dependabot。
使用方式 该技能以检查清单和代码示例的形式提供指导。开发者可在编写或审查相关代码时逐项对照,并在自动化测试中编写安全性测试用例(如验证认证返回 401、授权返回 403、无效输入返回 400、速率限制返回 429)。部署前应逐项核对安全检查清单,包括密钥、输入验证、SQL 注入、XSS、CSRF、认证、授权、速率限制、HTTPS、安全响应头、错误处理、日志、依赖、RLS、CORS、文件上传、钱包签名等。
适用场景 适用于 Web 应用与 API 的开发,尤其是涉及用户认证、支付、敏感数据处理、第三方集成或 Supabase 与 Next.js 技术栈的项目。
限制 本技能为代码审查指导清单,不替代专业安全审计或渗透测试。所列示例基于特定技术栈(如 Zod、Supabase、Next.js、express-rate-limit、Solana web3.js),其他环境需相应调整。具体功能、收费、价格、平台支持与效果等事实,资料未提供。