Skip to content

AiyaFun/security-skill

Repository files navigation

🌐 中文 · English

Security skill

「让 AI 写代码前先过一遍安全闸门。」

Agent Skills Version License: MIT Validation

把登录、权限、支付、上传、OSS、移动端、AI Agent 和隐私风险,变成 AI 写代码时必须回答的上线门禁。

作者 / Maintainer:AiyaFun

看效果 · 安装 · 触发方式 · 能做什么 · 验证 · 安全边界


它解决什么问题

你让 AI 写一个接口,它可能功能跑通了,但顺手留下 SQL 注入、越权、JWT 泄露、支付金额篡改、OSS 公开、日志泄露手机号,或者让 AI Agent 被文档里的 prompt 注入牵着走。

Security skill 的作用不是把 AI 变成“安全专家演讲家”,而是在开发过程中强制它先识别资产、角色、信任边界,再按对应清单做加固,并用 通过 / 有条件通过 / 阻止上线 给出发布结论。

它特别适合中文团队的真实业务栈:微信登录、小程序、OSS 对象存储、移动 App 抓包/反编译、支付回调、隐私合规、AI Prompt 注入,都在同一套 Skill 里。


效果示例

输入:

Use $security-skill to review examples/vulnerable-snippets.md. Focus on SQL injection, XSS, JWT leakage, payment tampering, upload risks, and privacy-safe logging.

输出会变成这种上线结论,而不是泛泛提醒:

结论: 阻止上线

仍有风险:
- [Critical] SQL/API: orders 查询拼接 req.params.id,存在 SQL 注入风险,并且没有按当前用户或租户限制订单归属。
- [Critical] JWT: 使用 jwt.decode 读取 bearer token,没有验证签名、issuer、audience、过期时间。
- [Critical] Payment: userId、amount、membershipDuration 都来自客户端,用户可篡改支付金额和会员权益。

建议测试:
- 使用用户 A 的 token 访问用户 B 的订单,应返回 403。
- 篡改 amount 和 membershipDuration 创建订单,应被服务端价格表覆盖。

是否阻止上线: 是。

完整样例见 examples/security-review-sample.md

可视化 Demo:打开 assets/demo/security-report-demo.html,可以看到由扫描脚本生成的阻止上线报告。


快速开始

本地安装到 Codex 可发现目录:

mkdir -p ~/.codex/skills
cp -R security-skill ~/.codex/skills/security-skill

装完对 Agent 说:

Use $security-skill to review this code for security, privacy, and app hardening risks before shipping.

如果你把它发布到 GitHub 仓库,可以使用 Agent Skills 生态常见安装方式:

npx skills add <owner>/<repo>

触发方式

  • 使用 $security-skill 帮我审查这个接口的安全和隐私风险。
  • 用 Security skill 检查这次改动,重点看越权、JWT、API Key 泄露和隐私日志。
  • 使用 $security-skill 帮我实现文件上传接口,必须防止上传漏洞、OSS 泄露和隐私数据泄露。
  • 使用 $security-skill 做上线前审查,判断是否阻止上线。
  • Use $security-skill to review this payment callback before release.
  • Use $security-skill to harden this mobile app against packet capture and reverse engineering.
  • Use $security-skill to review this AI agent for prompt injection and data exfiltration risks.

能做什么

场景 交付物 上线门禁
Web/API SQL 注入、XSS、CSRF、限流、输入输出校验审查 高危未修复则阻止上线
Auth/JWT/权限 登录、Session、JWT、租户和对象级授权检查 越权或 token 泄露阻止上线
密钥与隐私 API Key、日志脱敏、PII 最小化、第三方 SDK 数据采集检查 密钥或敏感个人数据泄露阻止上线
上传/OSS 文件类型、大小、路径、签名 URL、Bucket 权限检查 私有文件公开或可写阻止上线
支付/微信登录 金额篡改、回调签名、openid/unionid 绑定、session_key 保护 支付和身份链路未验证阻止上线
移动端 抓包、反编译、硬编码密钥、Debug 日志、本地 token 存储检查 客户端承载真实安全决策阻止上线
AI Agent Prompt 注入、RAG ACL、工具调用确认、数据外泄检查 高影响工具可被不可信内容触发则阻止上线

它和同类有什么不同

维度 常见安全 Checklist Security skill
面向对象 偏 Web 通用漏洞 覆盖 Web、移动端、微信登录、OSS、支付、AI Agent、隐私
输出方式 提醒式建议 发布结论:通过 / 有条件通过 / 阻止上线
中文业务适配 较少覆盖小程序、openid、OSS、隐私日志 把微信和国内常见对象存储/移动端问题放进主路径
可验证性 只有文档 带漏洞样例、测试 prompt、扫描脚本和整包验证脚本
AI 使用方式 人读清单 让 Agent 在写代码前后主动读取对应 reference

文件结构

security-skill/
├── SKILL.md                         # Agent 触发入口和核心工作流
├── README.md / README.en.md          # 中英文发布说明
├── USAGE.zh-en.md                    # 中英文使用说明
├── references/                       # 按风险域拆分的安全规则
├── scripts/
│   ├── scan_secrets.sh               # 明显密钥扫描
│   ├── scan_dangerous_patterns.sh    # 高风险代码模式扫描
│   ├── security_report.sh            # 生成 Markdown 安全报告
│   └── validate_security_skill.sh    # 整包发布前验证
├── examples/
│   ├── vulnerable-snippets.md        # 故意带漏洞的测试样例
│   ├── security-review-sample.md     # 期望审查输出
│   ├── security-report-demo.md       # 脚本生成的真实 Demo 报告
│   └── test-prompts.json             # 前向测试 prompts
├── assets/demo/
│   └── security-report-demo.html     # 可传播的可视化 Demo
└── agents/openai.yaml                # Codex UI 元数据

验证与测试

运行整包验证:

./scripts/validate_security_skill.sh

单独扫明显密钥:

./scripts/scan_secrets.sh .

单独扫高风险代码模式:

./scripts/scan_dangerous_patterns.sh examples/vulnerable-snippets.md

生成 Markdown 安全报告:

./scripts/security_report.sh examples/vulnerable-snippets.md examples/security-report-demo.md

前向测试 prompts 在 examples/test-prompts.json。一个合格的 Agent 输出必须能指出具体文件/模块风险、严重度、修复方向、建议测试,以及是否阻止上线。


安全边界

这个 Skill 不会保证代码绝对安全,不会替代专业渗透测试、合规审计或支付/隐私法务评审。

它应该在这些情况下停下来要求人工确认:

  • 真实支付、退款、会员权益或资金结算逻辑无法验证。
  • 生产密钥、JWT signing secret、WeChat secret、OSS access key 可能已经泄露。
  • 涉及身份证、地址、金融、健康、未成年人等敏感个人信息。
  • 需要发布、打 tag、注册 marketplace、修改生产权限或开放对象存储 Bucket。
  • 安全结论依赖第三方控制台配置,但当前无法读取配置证据。

致谢与参考

这个 Skill 的设计参考了公开安全技能和 AI 安全生态的方向,包括:


License

MIT

Copyright (c) 2026 AiyaFun


先过安全闸门,再让 AI 动手写代码。

About

Security and privacy guardrails for AI-assisted software development

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors