mcpField
P
Python Security Scan

Python Security Scan

github.com/sugarforever安全139542 次安装1 周前更新
代码仓库

关于 Python Security Scan

Python Security Scan 是面向 Python 项目的安全审查技能,适用于应用审计、代码审查和部署前检查。它可识别 Flask、Django 和 FastAPI,并结合框架检查、依赖审计与多种报告格式进行扫描。

主要功能

  1. 01快速、全面和定向扫描
  2. 02识别 Flask、Django 和 FastAPI
  3. 03检查注入、反序列化与认证问题
  4. 04扫描硬编码密钥并审计依赖项
  5. 05分析框架特有风险
  6. 06生成 SARIF、JSON 和 JUnit XML

适用场景

  1. 01审查 Python 应用的安全漏洞
  2. 02部署前检查框架配置与认证
  3. 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.md
references/
deserialization.md
django-security.md
fastapi-security.md
flask-security.md
injection-patterns.md
owasp-top-10.md
python-vulnerabilities.md
scripts/
dependency-audit.sh
pattern-scanner.py
secret-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:项目发现
  1. 识别项目类型和框架:
    • 检查 requirements.txt、Pipfile、pyproject.toml、setup.py
    • 检测 Flask(from flask import)、Django(django.conf)、FastAPI(from fastapi import)
  2. 查找配置文件
  3. 梳理代码库结构
步骤 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 标志

扫描器将会:

  1. 扫描源代码中的硬编码密钥
  2. 分析 .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