Appearance
Everything Claude Code Django Security Skill 是一套专为生产级 Django 项目设计的安全防护体系,覆盖 CSRF、SQL 注入、XSS 防护、认证授权、文件上传安全、API 限流、环境变量管理与日志审计等核心环节。Skill 自动检测和建议安全配置,结合 Agent、Hooks 等自动化机制,帮助开发者在 AI 编程助手辅助下高效构建、审查和部署安全的 Django 应用,显著降低常见漏洞风险。
Everything Claude Code Django Security Skill:CSRF、SQL 注入、XSS 防护与 Django 安全部署配置
Django 作为主流 Web 框架,安全配置和最佳实践的落实直接影响项目上线后的抗攻击能力。Everything Claude Code 的 django-security Skill,正是为了解决“安全配置零散、易疏漏、难以系统性落地”的痛点而设计。它不仅为 AI 编程助手(如 Claude Code、Codex、Cursor 等)提供标准化的安全建议,还能与 Agent、Hooks、Rules 等自动化体系协同,确保你的 Django 项目在开发、审查、部署每个环节都能防患于未然。
推荐阅读:Everything Claude Code 完全指南:38 Agent + 156 Skill 的生产级 AI 编程插件、Claude Code 快速上手指南:Skills、Hooks、Subagents、MCP 实战配置
1. 适用场景与触发时机
- 新建或重构 Django 项目:初始化认证、权限、生产环境配置时,Skill 自动介入。
- 安全审查与代码评审:与
Code Reviewer Agent、Security Reviewer Agent等协作,检测常见安全隐患。 - 上线部署前:结合 Pre/Post ToolUse Hook,自动校验配置与依赖安全。
- API 开发与外部集成:涉及文件上传、API 认证、速率限制等场景,Skill 会给出针对性建议。
2. 使用流程 Step by Step
步骤 1:激活 django-security Skill
在 ECC 配置或 Agent Harness 中启用 django-security Skill。安装完成后,AI 会自动在以下场景触发安全建议:
- 检测到 Django 项目结构(如
settings.py、apps/目录) - 代码生成/修改涉及认证、权限、API、文件上传等安全敏感操作
- 部署前自动执行安全配置检查
步骤 2:生产环境安全配置
Skill 会自动生成或校验如下关键配置,确保生产环境安全基线:
python
# settings/production.py
DEBUG = False # 禁止生产环境开启 DEBUG
ALLOWED_HOSTS = os.environ.get('ALLOWED_HOSTS', '').split(',')
SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SECURE_HSTS_SECONDS = 31536000
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_BROWSER_XSS_FILTER = True
X_FRAME_OPTIONS = 'DENY'
# 强制通过环境变量设置 SECRET_KEY
SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY')
if not SECRET_KEY:
raise ImproperlyConfigured('DJANGO_SECRET_KEY environment variable is required')Skill 会自动检测是否存在弱口令、明文密钥、未启用 HSTS/SSL 等高危问题,并输出修复建议。
步骤 3:认证与权限体系强化
自定义用户模型,推荐用邮箱作为登录名,避免用户名冲突和弱口令攻击:
pythonfrom django.contrib.auth.models import AbstractUser class User(AbstractUser): email = models.EmailField(unique=True) USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['username']密码哈希算法:Skill 自动建议引入 Argon2、PBKDF2、Bcrypt 等多重加密,提高密码存储安全性。
pythonPASSWORD_HASHERS = [ 'django.contrib.auth.hashers.Argon2PasswordHasher', 'django.contrib.auth.hashers.PBKDF2PasswordHasher', 'django.contrib.auth.hashers.BCryptSHA256PasswordHasher', ]权限与 RBAC:Skill 支持自动生成自定义权限、角色字段、权限校验 Mixin,配合 Django/DRF 权限类实现细粒度控制。
pythonclass IsOwnerOrReadOnly(permissions.BasePermission): def has_object_permission(self, request, view, obj): if request.method in permissions.SAFE_METHODS: return True return obj.author == request.user
步骤 4:CSRF、SQL 注入、XSS 防护
CSRF 防护:Skill 检查 CSRF 配置是否开启,自动插入
{% csrf_token %},并对 API/AJAX 场景给出前端 token 传递范例。html<form method="post"> {% csrf_token %} {{ form.as_p }} </form>javascriptfetch('/api/endpoint/', { method: 'POST', headers: { 'X-CSRFToken': getCookie('csrftoken'), 'Content-Type': 'application/json', }, body: JSON.stringify(data) });SQL 注入防护:Skill 强制推荐使用 ORM 查询和参数化 raw SQL,检测拼接 SQL 的危险用法并给出修复建议。
python# 安全 User.objects.get(username=username) # 危险 User.objects.raw(f"SELECT * FROM users WHERE username = {username}") # Skill 会警告XSS 防护:Skill 检查模板变量是否被错误地
|safe,推荐使用escape、striptags,并自动生成 CSP、X-Frame-Options 等安全头配置。django{{ user_input }} {# 默认安全 #} {{ trusted_html|safe }} {# Skill 检查 trusted_html 来源 #}
步骤 5:文件上传与静态资源安全
文件类型与大小校验:Skill 自动生成验证器,防止上传可执行脚本或超大文件。
pythondef validate_file_extension(value): ext = os.path.splitext(value.name)[1] if ext.lower() not in ['.jpg', '.png', '.pdf']: raise ValidationError('Unsupported file extension.')分离存储与访问控制:Skill 建议生产环境使用独立域名或 S3/CDN 存储用户上传,避免直接暴露在主站点。
步骤 6:API 安全与限流
API 认证:Skill 推荐 Token/JWT 认证,默认关闭匿名访问,自动生成 DRF 权限与认证配置。
pythonREST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': [ 'rest_framework.authentication.TokenAuthentication', 'rest_framework_simplejwt.authentication.JWTAuthentication', ], 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework.permissions.IsAuthenticated', ], }速率限制:Skill 检查并建议为公开 API 配置限流,防止暴力破解和滥用。
pythonREST_FRAMEWORK = { 'DEFAULT_THROTTLE_CLASSES': [ 'rest_framework.throttling.AnonRateThrottle', 'rest_framework.throttling.UserRateThrottle' ], 'DEFAULT_THROTTLE_RATES': { 'anon': '100/day', 'user': '1000/day', } }
步骤 7:环境变量与密钥管理
Skill 强制建议使用 .env 文件和 django-environ/python-decouple 管理密钥,防止敏感信息泄漏到代码仓库。
python
import environ
env = environ.Env()
environ.Env.read_env()
SECRET_KEY = env('DJANGO_SECRET_KEY')步骤 8:安全事件日志与自动化审计
Skill 自动生成日志配置,确保所有安全相关事件(如登录失败、权限拒绝、异常请求)都被记录,便于后续追踪和合规审计。
python
LOGGING = {
'loggers': {
'django.security': {
'handlers': ['file', 'console'],
'level': 'WARNING',
},
},
}3. 典型输出示例
Skill 触发后,AI 助手会输出如下结构化安全建议:
- 检查到
DEBUG=True,建议关闭并配置ALLOWED_HOSTS - 检查到
SECRET_KEY明文硬编码,建议迁移到环境变量 - 检查到
User.objects.raw(f"...{username}..."),输出 SQL 注入风险警告及安全写法 - 检查到文件上传未校验扩展名,自动生成验证器代码块
- 检查到模板变量使用
|safe,提示 XSS 风险并建议改用escape - 检查到 API 未配置限流,输出 DRF Throttle 配置建议
4. 常见配套 Agent 与 Skill 协作
- Code Reviewer Agent、Security Reviewer Agent:自动调用
django-securitySkill 进行代码审查和安全检测。 - Django Verification Skill:上线前自动执行安全配置、Lint、测试覆盖率与依赖安全扫描,形成完整验证闭环。
- Hooks:Everything Claude Code Hooks 实战 可在 PreToolUse/PostToolUse 阶段自动触发 Skill 检查,防止配置疏漏。
- Rules:Everything Claude Code Rules 体系详解 可结合项目安全规范,强制 Skill 输出的建议被实际遵守。
FAQ
Q: Skill 会自动修复安全配置,还是只给建议?
A: Skill 默认输出结构化建议和修复代码块,部分场景(如 Agent Loop 或 Pre-commit Hook)可配置自动修复。
Q: 如何与代码审查流程集成?
A: 可将 Skill 配置为 Code Reviewer Agent 的子技能,审查时自动检测并标注安全隐患。
Q: Skill 能检测第三方依赖的安全漏洞吗?
A: Skill 主要聚焦 Django 配置与代码安全,第三方库漏洞建议结合 Security Scan Skill 或外部 SCA 工具一同使用。
安全不是一次性任务,而是持续演进的体系。借助 Everything Claude Code Django Security Skill,你可以让安全防护成为开发流程的“默认选项”,显著提升 AI 辅助开发的安全底线。