关于 Python Security Scan
Python Security Scan 是面向 Python 项目的安全审查技能,适用于应用审计、代码审查和部署前检查。它可识别 Flask、Django 和 FastAPI,并结合框架检查、依赖审计与多种报告格式进行扫描。
主要功能
- 01快速、全面和定向扫描
- 02识别 Flask、Django 和 FastAPI
- 03检查注入、反序列化与认证问题
- 04扫描硬编码密钥并审计依赖项
- 05分析框架特有风险
- 06生成 SARIF、JSON 和 JUnit XML
适用场景
- 01审查 Python 应用的安全漏洞
- 02部署前检查框架配置与认证
- 03排查依赖漏洞和硬编码凭据
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ sugarforever/ 01coder-agent-skills --skill python-security-scan安装后在 Claude Code 中输入/python-security-scan确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/report-template.mdreferences/deserialization.mddjango-security.mdfastapi-security.mdflask-security.mdinjection-patterns.mdowasp-top-10.mdpython-vulnerabilities.mdscripts/dependency-audit.shpattern-scanner.pysecret-scanner.py详细介绍
Python 安全扫描技能
此技能可根据 OWASP 指南、Python 安全最佳实践和特定框架的漏洞,对 Python 项目进行全面安全扫描。
使用此技能的时机
- 审计 Python 应用的安全性
- 在代码审查中检查安全漏洞
- 部署前安全检查
- 评估依赖项漏洞
- 检测硬编码的密钥和凭据
- 特定框架的安全审查(Flask、Django、FastAPI)
支持的框架
此技能会自动检测框架,并应用特定框架的检查项:
- Flask - 模板注入、会话安全、CORS、扩展
- Django - ORM 注入、CSRF、模板安全、设置
- FastAPI - 依赖项注入、Pydantic 验证、OAuth2
- 通用 Python - 适用于所有项目的核心语言漏洞
扫描类型
1. 快速扫描
快速扫描,重点检查严重漏洞:
- 硬编码的密钥、API 密钥和凭据
- 危险函数的使用(
eval、exec、pickle.loads) - 通过
subprocess、os.system进行命令注入 - SQL 注入模式
- 已知存在漏洞的依赖项
2. 全面扫描
全面的安全评估,涵盖:
- OWASP Top 10:2025 的所有类别
- Python 特有的漏洞
- 特定框架的安全问题
- 注入漏洞(SQL、NoSQL、命令、LDAP)
- 不安全的反序列化
- 身份验证和授权缺陷
- 加密失败
- 安全配置错误
- 依赖项审计(CVE 检查)
- 环境变量和密钥泄露
3. 定向扫描
重点检查特定漏洞类别:
--injection- SQL/NoSQL/命令/LDAP 注入--deserialization- Pickle、YAML、JSON 反序列化--auth- 身份验证/授权问题--secrets- 硬编码的凭据--deps- 依赖项漏洞--crypto- 加密问题--flask- Flask 特有的漏洞--django- Django 特有的漏洞--fastapi- FastAPI 特有的漏洞
扫描流程
步骤 1:项目发现
- 识别项目类型和框架:
- 检查
requirements.txt、Pipfile、pyproject.toml、setup.py - 检测 Flask(
from flask import)、Django(django.conf)、FastAPI(from fastapi import)
- 检查
- 查找配置文件
- 梳理代码库结构
步骤 2:框架检测
# Detection patterns
Flask: "from flask import", "Flask(__name__)"
Django: "django.conf.settings", "INSTALLED_APPS", "manage.py"
FastAPI: "from fastapi import", "FastAPI()"
步骤 3:依赖项审计
运行依赖项审计脚本:
./scripts/dependency-audit.sh /path/to/project
或者手动执行:
pip-audit
# or
safety check
步骤 4:密钥扫描
扫描硬编码的密钥:
python scripts/secret-scanner.py /path/to/project
重要:环境文件处理
- 默认情况下,真实的
.env文件会被跳过(.env、.env.local、.env.production等) - 这些文件包含实际密钥,不应纳入版本控制
- 仅分析
.env.example和.env.template文件的文档质量 - 仅在用户明确要求时使用
--include-env-files标志
扫描器将会:
- 扫描源代码中的硬编码密钥
- 分析
.env.example模板,检查:- 记录了哪些敏感变量
- 变量是否附有说明(注释)
- 占位值是否看起来像真实密钥
- 对缺少的常见变量(SECRET_KEY、DATABASE_URL 等)提出建议
步骤 5:模式分析
针对代码库中的每个文件,根据以下模式进行检查:
references/python-vulnerabilities.md- Python 核心问题references/injection-patterns.md- 注入缺陷references/deserialization.md- 不安全的反序列化references/flask-security.md- Flask 漏洞references/django-security.md- Django 漏洞references/fastapi-security.md- FastAPI 漏洞
步骤 6:生成报告
使用以下文件生成安全报告:
assets/report-template.md- 报告结构
严重性分类
| 严重性 | 描述 | 所需操作 |
|---|---|---|
| CRITICAL | 可被利用且影响严重的漏洞 | 需要立即修复 |
| HIGH | 严重的安全风险 | 部署前修复 |
| MEDIUM | 潜在的安全问题 | 在下一个版本中修复 |
| LOW | 轻微的安全隐患 | 考虑修复 |
| INFO | 安全最佳实践建议 | 可选改进 |
要扫描的关键文件
始终检查
**/*.py- 所有 Python 源文件requirements.txt、Pipfile、pyproject.toml- 依赖项setup.py、setup.cfg- 包配置config.py、settings.py- 配置文件**/secrets*、**/credentials*- 明显存放机密的文件
环境文件
.env.example、.env.template- 扫描,用于模板分析.env、.env.local、.env.production- 默认跳过(包含真实机密)
注意: 真实的 .env 文件绝不应提交到版本控制中。扫描器会分析 .env.example 模板,以确保正确记录所需变量。
高优先级位置
app.py、main.py、wsgi.py- 入口点**/views.py、**/routes.py- 请求处理程序**/api/**/*.py- API 端点**/auth*、**/login*- 身份验证代码**/models.py- 数据库模型**/serializers.py- 数据序列化**/middleware.py- 中间件代码
特定框架
Flask:
app.py、__init__.py- 应用工厂**/blueprints/**- Blueprint 路由templates/**- Jinja2 模板
Django:
settings.py、**/settings/*.py- Django 设置urls.py- URL 配置**/views.py- 视图函数/类**/forms.py- 表单定义templates/**- Django 模板
FastAPI:
main.py- 应用入口**/routers/**- API 路由器**/dependencies.py- 依赖注入**/schemas.py- Pydantic 模型
输出格式
应按以下格式报告发现的问题:
[SEVERITY] Category: Description
File: path/to/file.py:lineNumber
Code: <relevant code snippet>
Risk: <explanation of the security risk>
Fix: <recommended remediation>
与 CI/CD 集成
此技能可以生成与以下内容兼容的输出:
- GitHub Security Advisories
- 适用于 GitHub Code Scanning 的 SARIF 格式
- 用于自定义集成的 JSON
- 用于 CI 流水线的 JUnit XML
参考资料
根据需要加载更多上下文:
references/owasp-top-10.md- OWASP Top 10:2025 快速参考references/python-vulnerabilities.md- Python 特定漏洞references/injection-patterns.md- 注入漏洞模式references/deserialization.md- 不安全反序列化模式references/flask-security.md- Flask 安全指南references/django-security.md- Django 安全指南references/fastapi-security.md- FastAPI 安全指南
评论
支持 Markdown