SuperAPI AI 工具集

security-patterns

安全与审计

查看项目

更新于 10-13 17:07

技能介绍

用途

Security Patterns 为 Web 应用开发提供一套安全编码模式与 OWASP 指南参考,帮助在开发与安全审查过程中识别常见漏洞并采用正确的防护写法。其描述中列出的触发场景包括:security review、OWASP、XSS、SQL 注入、CSRF、认证、授权、密钥管理、输入验证等。

主要能力

OWASP Top 10 快速参考

文档以表格形式列出 OWASP Top 10 风险、排名与预防要点:

  • A01 Broken Access Control:服务端检查权限,默认拒绝
  • A02 Cryptographic Failures:使用 TLS、哈希密码、加密敏感数据
  • A03 Injection:参数化查询、验证输入
  • A04 Insecure Design:威胁建模、安全默认值
  • A05 Security Misconfiguration:加固配置、禁用未使用功能
  • A06 Vulnerable Components:更新依赖、定期审计
  • A07 Auth Failures:MFA、速率限制、安全会话管理
  • A08 Data Integrity Failures:校验签名、使用可信来源
  • A09 Logging Failures:记录安全事件、保护日志
  • A10 SSRF:验证 URL、允许列表目标

输入验证

给出错误与正确写法对照:错误做法是信任用户输入并直接拼接 SQL 字符串;正确做法是使用参数化查询。文档还列出应始终验证的维度(类型、长度、范围、格式、允许列表)以及不可信任的来源(URL 参数、表单数据、HTTP 头、Cookie、文件上传)。

输出编码

给出前端代码对照:错误做法是直接使用 innerHTML 插入用户输入;正确做法是使用 textContent(自动转义)或带转义的模板渲染。并列出不同上下文的编码方式:HTML body 用 HTML 实体编码、HTML 属性用属性编码并加引号、JavaScript 用 JS 编码、URL 参数用 URL 编码、CSS 用 CSS 编码。

认证

提供使用 bcrypt 的密码哈希与校验示例代码,并附认证检查清单:使用 bcrypt/argon2 哈希密码(cost factor 12+)、登录速率限制、安全会话令牌(随机且长)、安全 Cookie 标志(HttpOnly、Secure、SameSite)、失败尝试后的账户锁定、敏感操作支持 MFA。

授权

通过代码对照说明仅检查认证与检查授权的区别:正确做法是在删除等操作前校验资源归属或管理员权限,否则抛出 Forbidden。

密钥管理

给出硬编码密钥、环境变量、密钥管理器三种方式,并列出规则:应使用环境变量或密钥管理器、定期轮换、不同环境使用不同密钥、审计密钥访问;不应将密钥提交到 git、记录到日志、放入错误信息、以明文共享。

安全响应头

列出常用安全头配置:Content-Security-Policy、X-Content-Type-Options、X-Frame-Options、Strict-Transport-Security、Referrer-Policy、Permissions-Policy。

快速安全审计

提供基于 ripgrep 的搜索命令,用于查找硬编码密钥、SQL 注入风险、eval/exec 使用以及安全相关 TODO。

使用方式

该技能以 Markdown 文档形式提供安全模式参考,可在安全审查或编码过程中查阅。文档附带参考文件路径:

  • ./references/owasp-detailed.md - 完整 OWASP Top 10 细节
  • ./references/auth-patterns.md - JWT、OAuth、会话管理
  • ./references/crypto-patterns.md - 加密、哈希、签名
  • ./references/secure-headers.md - HTTP 安全头指南

以及脚本:

  • ./scripts/security-scan.sh - 快速安全 grep 模式
  • ./scripts/dependency-audit.sh - 检查易受攻击的依赖

适用场景

适用于 Web 应用开发过程中的安全编码参考、代码安全审查、OWASP 风险自查,以及输入验证、输出编码、认证授权、密钥管理等具体环节的写法对照。

限制

本次资料未提供安装命令、收费方式、价格、平台支持范围或实际使用效果等信息,这些内容暂未提供。文中代码与命令均为文档示例,实际使用时应结合具体技术栈与环境进行验证。