使用开源AI编码助手Continue,将Snyk的安全扫描能力直接集成到您的开发工作流程中。
┌─────────────────────────────────────────────────────────────────┐
│ 您的开发环境 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────────────┐ ┌────────────────────┐ │
│ │ Continue IDE │ │ 您的项目 / │ │
│ │ (VS Code / JetBrains) │ │ PyGoat │ │
│ │ │ │ (要扫描的代码) │ │
│ │ ┌────────────────────┐ │ └────────────────────┘ │
│ │ │ 代理聊天面板 │ │ │
│ │ │ (启用MCP) │ │ │
│ │ └─────────┬──────────┘ │ │
│ │ │ │ │
│ │ "扫描项目" │ │
│ └────────────┼─────────────┘ │
│ │ │
│ │ 调用MCP工具 │
│ ▼ │
│ ┌──────────────────────────────────────────────┐ │
│ │ Snyk MCP服务器 (.continue/mcpServers/) │ │
│ │ (连接Continue和Snyk CLI的桥梁) │ │
│ └──────────────┬───────────────────────────────┘ │
│ │ │
│ 调用 │
│ │ │
│ ▼ │
│ ┌──────────────────────────┐ │
│ │ Snyk CLI │ │
│ │ (snyk mcp -t stdio) │ │
│ │ │ │
│ │ 需要: snyk auth │ │
│ │ (存储API令牌) │ │
│ └──────────────┬───────────┘ │
│ │ │
│ 扫描 │
│ │ │
│ └──────────► 项目文件(逐行) │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 漏洞检测结果 │ │
│ ├──────────────────────────────────────────────────────────┤ │
│ │ • SQL注入(高) • 硬编码密钥 │ │
│ │ • XSS漏洞 • 弱加密算法 │ │
│ │ • 路径遍历 • 不安全默认值 │ │
│ └─────────────┬────────────────────────────────────────────┘ │
│ │ │
│ 通过MCP返回 │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Continue代理(LLM) │ │
│ ├──────────────────────────────────────────────────────────┤ │
│ │ • 按严重程度总结发现 │ │
│ │ • 建议修复(参数化查询,输入验证) │ │
│ │ • 应用补丁到代码 │ │
│ │ • 再次扫描以验证修复 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Continue聊天中的结果 │ │
│ │ ✓ 漏洞已修复并验证 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
数据流:您请求Continue → MCP调用Snyk CLI → 扫描代码 → 返回发现 → Continue LLM分析 → 建议/应用修复 → 再次扫描以验证
Continue从根本上不同于闭源AI编码助手:
npm i -g @continuedev/cli安装Continue CLI安装后,点击代理选择器下拉菜单并选择您偏好的提供商:
# 通过npm安装
npm install -g snyk
# 或从https://docs.snyk.io/developer-tools/snyk-cli/install-or-update-the-snyk-cli下载
使用您的Snyk账户进行身份验证:
snyk auth
.continue/mcpServers/new-mcp-server.yaml文件您可以将创建的文件重命名为.continue/mcpServers/snyk-mcp.yaml(在您的项目根目录)。它应包含:
使用npx(始终是最新版本):
name: Snyk Security Scanner
version: 0.0.1
schema: v1
mcpServers:
- name: Snyk
command: npx
args:
- "-y"
- "snyk@latest"
- "mcp"
- "-t"
- "stdio"
env: {}
使用本地Snyk安装:
name: Snyk Security Scanner
version: 0.0.1
schema: v1
mcpServers:
- name: Snyk
command: /path/to/snyk # 例如,在Linux上从`which snyk`获取
args:
- "mcp"
- "-t"
- "stdio"
env: {}
此研讨会参考了adeyosemanputra的故意易受攻击的测试应用程序,用于学习和演示目的。
将故意易受攻击的Django应用程序克隆到子目录中:
git clone https://github.com/adeyosemanputra/pygoat.git
什么是PyGoat?
PyGoat是一个OWASP项目教育应用程序,旨在教授安全漏洞。它包含了不同严重级别广泛记录的漏洞,包括:
这使得它非常适合测试您的安全扫描和修复工作流程,而不会影响生产代码。
MCP工具仅在代理模式下可用。点击代理选择器下拉菜单并确保其处于活动状态。
在Continue聊天(代理模式)中询问:
请对当前项目运行Snyk代码扫描。
Continue将:
向Continue提供具体的漏洞详情:
扫描发现一个高严重性的SQL注入漏洞位于:
路径:introduction/views.py,第871行
问题:来自HTTP参数的未经处理的输入流入原始SQL查询。
你能修复这个漏洞然后再次扫描以验证是否已修复吗?
Continue的代理将:
基于工作区的配置(.continue/mcpServers/)
全局配置(~/.continue/config.yaml)
mcpServers块下定义如果您正在从Cursor,Cline或Claude Desktop迁移,请直接将它们的JSON MCP配置复制到.continue/mcpServers/中,Continue将自动检测它们。
对于主要在终端工作的开发者:
# 全局安装
npm i -g @continuedev/cli
# 启动交互模式
cn
# 继续之前的对话
cn --resume
# 使用特定配置
cn --config ~/.continue/config.yaml
使用与IDE扩展相同的@和/语法来获取文件上下文和斜杠命令。CLI还支持无头模式,用于CI/CD自动化。
随着MCP采用的增长,Continue代理可以: