多语言安全规则(Language Security Rules)

中级 Intermediate 参考型 Reference ⚡ Claude Code 专属 ⚡ Claude Code Optimized
3 min read · 166 lines

TypeScript、Python、Go 三语言专属安全规则合集

多语言安全规则(Language Security Rules)

来源: affaan-m/everything-claude-code 原始文件: rules/typescript/security.md + rules/python/security.md + rules/golang/security.md 类别: E-安全保障

一、TypeScript/JavaScript 安全

适用文件:**/*.ts**/*.tsx**/*.js**/*.jsx

密钥管理

// 错误:硬编码密钥
const apiKey = "sk-proj-xxxxx"

// 正确:使用环境变量
const apiKey = process.env.OPENAI_API_KEY

if (!apiKey) {
  throw new Error('OPENAI_API_KEY not configured')
}

Agent 支持

  • 使用 security-reviewer 技能进行全面安全审计

关键安全实践

实践 说明
环境变量 所有密钥通过 process.env 加载
输入验证 使用 Zod 等库进行 Schema 验证
SQL 注入防护 使用参数化查询或 ORM
XSS 防护 使用 DOMPurify 清理用户 HTML
依赖安全 运行 npm audit,提交锁文件
安全插件 使用 eslint-plugin-security

二、Python 安全

适用文件:**/*.py**/*.pyi

密钥管理

import os
from dotenv import load_dotenv

load_dotenv()

api_key = os.environ["OPENAI_API_KEY"]  # 缺失时抛出 KeyError

安全扫描

  • 使用 bandit 进行静态安全分析:
    bandit -r src/
    

关键安全实践

实践 说明
环境变量 使用 os.environpython-dotenv 加载密钥
输入验证 使用 Pydantic 等库进行 Schema 验证
SQL 注入防护 使用 ORM(如 Django ORM、SQLAlchemy),参数化原始 SQL
静态分析 使用 bandit 扫描安全漏洞
依赖安全 使用 pip auditsafety check
Django 安全 参见 django-security 技能获取 Django 特定安全指南

三、Go 安全

适用文件:**/*.go**/go.mod**/go.sum

密钥管理

apiKey := os.Getenv("OPENAI_API_KEY")
if apiKey == "" {
    log.Fatal("OPENAI_API_KEY not configured")
}

安全扫描

  • 使用 gosec 进行静态安全分析:
    gosec ./...
    

Context 与超时

始终使用 context.Context 进行超时控制:

ctx, cancel := context.WithTimeout(ctx, 5*time.Second)
defer cancel()

关键安全实践

实践 说明
环境变量 使用 os.Getenv 加载密钥,启动时验证
输入验证 使用 validator 库或自定义验证
SQL 注入防护 使用参数化查询($1$2),避免字符串拼接
静态分析 使用 gosec 扫描安全漏洞
超时控制 所有网络调用使用 context.Context
依赖安全 使用 go list -m -json all + govulncheck
错误处理 始终检查错误,不忽略返回值

四、通用安全准则(适用于所有语言)

以下安全检查在每次提交前必须完成:

  • 无硬编码密钥(API 密钥、密码、令牌)
  • 所有用户输入已验证
  • SQL 注入防护(参数化查询)
  • XSS 防护(HTML 已清理)
  • CSRF 防护已启用
  • 认证/授权已验证
  • 所有端点已设置速率限制
  • 错误消息不泄露敏感数据

密钥管理通用规则

  • 绝不在源代码中硬编码密钥
  • 始终使用环境变量或密钥管理器
  • 在启动时验证必需的密钥是否存在
  • 轮换任何可能已暴露的密钥

安全响应协议

发现安全问题时:

  1. 立即停止当前工作
  2. 使用 security-reviewer Agent
  3. 在继续之前修复严重(CRITICAL)问题
  4. 轮换任何暴露的密钥
  5. 审查整个代码库是否存在类似问题

各语言安全工具速查表

语言 静态分析工具 依赖安全工具 密钥管理方式
TypeScript/JS eslint-plugin-security npm audit process.env
Python bandit pip audit / safety os.environ / dotenv
Go gosec govulncheck os.Getenv

相关技能 Related Skills