security-and-hardening

强化代码以抵御漏洞。在处理用户输入、身份验证、数据存储或外部集成时使用。在构建任何接收不可信数据的功能、管理用户会话或与第三方服务交互时使用。

安装

热度:40

下载并解压到你的 skills 目录

复制命令,发送给智能体自动安装:

下载并安装这个技能 https://openskills.cc/api/download?slug=addyosmani-skills-security-and-hardening&locale=zh&source=copy

Security and Hardening - Web 应用安全加固指南

技能概述


Security and Hardening 提供安全第一的 Web 应用开发实践指南,涵盖输入验证、身份验证、OWASP Top 10 防护、密钥管理和供应链安全,帮助开发者构建防御常见攻击的可靠应用。

适用场景

1. 处理用户输入和外部数据


当应用接受用户输入、文件上传、webhook 回调或第三方 API 数据时,使用该技能实施输入验证、SQL 注入防护和 XSS 防护。每个外部输入边界都是潜在攻击面,必须验证和清理所有未受信任数据。

2. 实现身份验证和授权


当构建登录系统、Session 管理、权限控制或处理敏感数据(PII、支付信息)时,该技能提供密码哈希、Session 安全配置、CORS 设置和访问控制最佳实践,防止身份伪造和权限提升攻击。

3. 集成外部服务和 AI 功能


当接入第三方 API、处理 webhook、实现文件上传或集成 LLM/AI 功能时,该技能指导如何防止 SSRF 攻击、管理 API 密钥、验证 LLM 输出,以及约束 AI 代理权限,确保外部集成不会成为安全漏洞。

核心功能

1. 威胁建模和 OWASP 防护


提供 STRIDE 威胁建模方法学,帮助开发者在编码前识别信任边界、资产价值和攻击面。涵盖 OWASP Top 10 防护模式:SQL 注入、身份验证失效、XSS、访问控制缺失、安全配置错误、敏感数据暴露、SSRF 等,每个威胁都有具体代码示例和缓解措施。

2. 输入验证和输出编码


强制在系统边界(API 路由、表单处理器)验证所有外部输入,使用参数化查询防止 SQL 注入,自动编码输出防止 XSS。提供文件上传安全检查、Schema 验证示例,以及如何安全处理 URL、JSON 和表单数据的实践模式。

3. 供应链和密钥管理


指导如何审计依赖包漏洞(区分 critical/high/moderate 严重性和可触及性)、配置安全响应头(CSP、HSTS、X-Frame-Options)、管理环境变量和密钥、实施速率限制,以及防止密钥泄露到版本控制系统。包含 LLM/AI 应用的特殊安全考虑(模型输出验证、工具权限约束、提示注入防护)。

常见问题

Security and Hardening 技能适用于哪些项目?


该技能适用于所有处理用户数据、外部集成或需要身份验证的 Web 应用项目。无论你是构建内部工具还是面向公众的服务,只要接受 HTTP 请求、存储用户数据或调用外部 API,都需要实施这些安全实践。特别适用于电商、SaaS、金融科技、医疗健康等高安全要求场景。

如何防止 SQL 注入和 XSS 攻击?


防止 SQL 注入的核心是永远不要将用户输入拼接到 SQL 语句中。使用参数化查询或 ORM(如 Prisma),让数据库驱动处理转义。对于 XSS,依赖框架的自动转义(如 React),避免直接使用 innerHTMLeval() 处理用户数据。如果必须渲染 HTML,使用 DOMPurify 等库进行清理。记住:所有外部输入(包括 LLM 输出)都应被视为不受信任。

密钥和敏感数据应该如何管理?


永远不要将密钥、密码或令牌提交到版本控制。使用 .env 文件存储敏感配置,并将 .env 添加到 .gitignore。生产环境密钥应通过环境变量或密钥管理服务(如 AWS Secrets Manager)注入。对于密码,使用 bcrypt/scrypt/argon2 哈希(salt rounds ≥ 12),绝不存储明文。API 响应中要排除敏感字段(passwordHash、resetToken)。如果密钥已泄露,立即轮换——仅从代码中删除不够,必须撤销并重新签发。