mcpField
C
code-security

code-security

github.com/semgrep安全3332.6k 次安装13 周前更新
代码仓库

关于 code-security

面向编写和审查代码的安全指南技能,覆盖 15 种以上语言、OWASP Top 10、基础设施安全及 28 类规则。它会按语言和代码用途引导检查相关规则,并优先关注高影响问题。

主要功能

  1. 01覆盖 15 种以上语言
  2. 02涵盖 28 类安全规则
  3. 03按语言和代码用途选择规则
  4. 04提供漏洞与安全代码示例

适用场景

  1. 01编写代码时检查常见漏洞
  2. 02审查代码并定位安全问题
  3. 03检查 Terraform、Kubernetes 和 Docker 配置

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/semgrep/skills --skill code-security

安装后在 Claude Code 中输入/code-security确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

AGENTS.md
metadata.json
README.md
rules/
_sections.md
_template.md
authentication-jwt.md
best-practice.md
code-injection.md
command-injection.md
correctness.md
csrf.md
docker.md
github-actions.md
insecure-crypto.md
insecure-deserialization.md
insecure-transport.md
kubernetes.md
maintainability.md
memory-safety.md
path-traversal.md
performance.md
prototype-pollution.md
race-condition.md
regex-dos.md
secrets.md
sql-injection.md
ssrf.md
terraform-aws.md
terraform-azure.md
terraform-gcp.md

详细介绍

代码安全指南

覆盖 15 种以上语言的全面安全规则,帮助编写安全代码。涵盖 OWASP Top 10、基础设施安全和编码最佳实践,共有 28 类规则。

如何使用此技能

主动模式 — 编写或审查代码时,根据所用语言和代码模式自动检查相关漏洞。无需等待用户提出安全相关问题。

响应模式 — 用户询问安全问题时,使用下方的分类找到相关规则文件,然后阅读文件中的详细漏洞代码示例和安全代码示例。

工作流
  1. 确认语言以及代码的用途(处理输入?查询数据库?读取文件?)
  2. 检查下方的相关规则 — 优先关注影响严重程度为「严重」和「高」的规则
  3. 从 rules/ 中阅读具体规则文件,查看该语言的详细代码示例
  4. 应用安全模式;如果是在审查代码,则标记存在漏洞的模式

特定语言的优先规则

使用以下语言编写代码时,请先检查这些规则:

语言优先检查的规则
PythonSQL 注入、命令注入、路径遍历、代码注入、SSRF、不安全的加密
JavaScript/TypeScriptXSS、原型污染、代码注入、不安全的传输、CSRF
JavaSQL 注入、XXE、不安全的反序列化、不安全的加密、SSRF
GoSQL 注入、命令注入、路径遍历、不安全的传输
C/C++内存安全、不安全函数、命令注入、路径遍历
RubySQL 注入、命令注入、代码注入、不安全的反序列化
PHPSQL 注入、XSS、命令注入、代码注入、路径遍历
HCL/YAMLTerraform(AWS/Azure/GCP)、Kubernetes、Docker、GitHub Actions

分类

严重影响
  • SQL 注入(rules/sql-injection.md)- 使用参数化查询,绝不拼接用户输入
  • 命令注入(rules/command-injection.md)- 避免在 Shell 命令中使用用户输入,改用安全 API
  • XSS(rules/xss.md)- 转义输出,使用框架提供的保护措施
  • XXE(rules/xxe.md)- 在 XML 解析器中禁用外部实体
  • 路径遍历(rules/path-traversal.md)- 验证并清理文件路径
  • 不安全的反序列化(rules/insecure-deserialization.md)- 绝不反序列化不可信数据
  • 代码注入(rules/code-injection.md)- 绝不对用户输入调用 eval()
  • 硬编码机密(rules/secrets.md)- 使用环境变量或机密管理器
  • 内存安全(rules/memory-safety.md)- 防止缓冲区溢出和释放后使用(C/C++)
高影响
  • 不安全的加密(rules/insecure-crypto.md)- 使用 SHA-256 或更高强度的算法、AES-256,避免使用 MD5/SHA1/DES
  • 不安全的传输(rules/insecure-transport.md)- 使用 HTTPS,并验证证书
  • SSRF(rules/ssrf.md)- 验证 URL,使用允许列表
  • JWT 问题(rules/authentication-jwt.md)- 始终验证签名
  • CSRF(rules/csrf.md)- 在会改变状态的请求中使用 CSRF 令牌
  • 原型污染(rules/prototype-pollution.md)- 验证 JavaScript 中的对象键
基础设施
  • Terraform AWS/Azure/GCP(rules/terraform-aws.md、rules/terraform-azure.md、rules/terraform-gcp.md)- 加密、最小权限、禁止公开访问
  • Kubernetes(rules/kubernetes.md)- 不使用特权容器,以非 root 用户身份运行
  • Docker(rules/docker.md)- 不以 root 身份运行,固定镜像版本
  • GitHub Actions(rules/github-actions.md)- 避免脚本注入,固定 Action 版本
中/低影响
  • 正则表达式 DoS(rules/regex-dos.md)- 避免灾难性回溯
  • 竞争条件(rules/race-condition.md)- 使用适当的同步机制
  • 正确性(rules/correctness.md)- 避免常见的逻辑错误
  • 最佳实践(rules/best-practice.md)- 通用安全编码模式

请参阅 rules/_sections.md,查看包含 CWE/OWASP 参考资料的完整索引。

快速参考

漏洞关键防护措施
SQL 注入使用参数化查询
XSS对输出进行编码
命令注入避免使用 shell,改用 API
路径遍历验证路径
SSRF使用 URL 允许列表
密钥使用环境变量
加密SHA-256、AES-256

评论

支持 Markdown