2026年7月13日 2 分钟阅读

AI 编码 Agent 写出的代码安全吗?isitsecure 一条命令搞定 SAST + DAST + AI 代码审查

tinyash 0 条评论

用 Claude Code 写了一个完整的 Next.js 应用,上线前你只有一个问题:这个代码里有没有安全漏洞?

传统做法是上商业 SAST 工具、配置 DAST 扫描器、再请安全团队做人工审查——一套流程下来可能花掉一整天。对于 solo developer 或小团队来说,这个流程太重了。

isitsecure 是一个开源的 AI 安全扫描 CLI,一条命令就能对你的 Web 应用做 SAST + DAST + LLM 代码审查。它定位很明确:给使用 AI 编码工具的开发者,在 shipping 之前快速回答”这代码安全吗”。

场景:AI 写的代码谁来审?

假设你用 Claude Code 生成了一个电商 API:

claude code -p "创建一个 Node.js 商品 API,包含用户认证、商品 CRUD、订单处理"

几分钟后你拿到了一段能跑的代码——路由有、数据库连接有、JWT 认证也有。但肉眼审查几千行代码找安全漏洞几乎不可能。常见的 AI 生成代码问题包括:

  • SQL 注入:直接拼接用户输入到查询字符串
  • XSS:未转义的用户内容渲染到页面
  • SSRF:Agent 生成的代码可能请求不受信的外部 URL
  • 硬编码密钥:API key、数据库密码直接写在源码里
  • 权限缺失:端点没有认证检查
  • 依赖漏洞:引入了有已知 CVE 的 npm 包

isitsecure 把这些检查合并成一个命令:

isitsecure scan --repo ./my-app

它会依次运行 SAST 扫描器(静态分析源码)、DAST 扫描器(对运行的实例做动态探测)、LLM 代码审查(AI 理解代码语义找出逻辑漏洞),最后生成一份带分数的报告。

安装 isitsecure

isitsecure 需要 Python 3.11+ 和 Git,支持 macOS、Linux 和 Windows:

curl -fsSLo install.sh https://raw.githubusercontent.com/jaurakunal/isitsecure/main/install.sh
bash install.sh

安装过程中会自动创建虚拟环境、安装依赖,并引导你完成首次配置(isitsecure setup)。你也可以选择手动安装:

git clone https://github.com/jaurakunal/isitsecure.git
cd isitsecure
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[all]"
isitsecure setup

setup 命令会做三件事:下载 Chromium 用于 DAST 浏览器扫描、安装语言服务器(LSP)减少误报、可选配置 LLM API key 用于 AI 代码审查。

快速扫描你的应用

以扫描一个 Next.js 项目为例:

cd /path/to/your/nextjs-app
isitsecure scan --repo ./

扫描过程会实时输出每个扫描器的进度和发现:

[SAST] Scanning 47 source files...
  ✓ ESLint security rules: 0 critical, 2 warnings
  ✓ Dependency audit: 1 moderate CVE (npm:lodash@4.17.20)

[DAST] Starting target on http://localhost:3000...
  ✓ XSS check: 1 finding (search input not sanitized)
  ✓ SQL injection check: 0 findings
  ✓ CSRF check: 2 endpoints missing tokens
  ✓ SSRF check: 0 findings

[LLM] Reviewing code semantics...
  ✓ Found hardcoded API key in config/environment.ts
  ✓ Missing authentication on /api/products/delete route
  ✓ Unsafe direct eval() in middleware.ts

Report: https://report.isitsecure.dev/abc123
Grade: B (75/100)

isitsecure 会生成两种报告:终端里的分级报告,以及一个可交互的 HTML 页面,包含每个发现的详细描述、影响分析和修复建议。

一键修复:用 AI 修 AI 的问题

isitsecure 的亮点是 isitsecure fix 命令——一次命令完成扫描、发现漏洞、并生成修复补丁:

isitsecure fix --repo ./my-app

先用 dry-run 模式预览修复内容,确认后再实际应用:

isitsecure fix --repo ./my-app --dry-run

isitsecure fix --repo ./my-app

这让流程变成了:AI 写代码 → isitsecure 扫描 → AI 修复漏洞 → 你审查确认——安全审查从数小时缩短到几分钟。

扫描模式与深度

isitsecure 支持多种扫描模式和深度:

模式命令适用场景
Code-onlyisitsecure scan --repo ./app --mode code-only只做 SAST 静态源码分析
URL-onlyisitsecure scan https://your-app.com只做 DAST 动态探测
Fullisitsecure scan --repo ./app https://your-app.com --mode fullSAST + DAST + LLM 全量
Authenticatedisitsecure scan --mode authenticated --auth-email user@example.com带登录态的扫描

扫描深度也支持调整:

isitsecure scan https://your-app.com

isitsecure scan https://your-app.com --depth deep --llm none

集成到 AI 编码工作流

对于使用 AI 编码 Agent 的开发者,isitsecure 的典型集成方式是在代码生成后立即执行:

claude code -p "add cart feature to my app"
isitsecure scan --repo ./ --mode code-only --output-file claude.md

也可以作为 Cursor 或 VS Code 的终端任务:

// .vscode/tasks.json
{
  "version": "2.0.0",
  "tasks": [{
    "label": "Security Scan",
    "type": "shell",
    "command": "isitsecure scan --repo ${workspaceFolder} --mode code-only",
    "problemMatcher": []
  }]
}

对于 CI/CD 流程,isitsecure 可以导出 SARIF 格式报告,集成到 GitHub Code Scanning:

isitsecure scan --repo https://github.com/you/your-app --output sarif

隐私与数据安全

isitsecure 的设计原则是本地优先

  • SAST 扫描完全在本地执行,代码不上传到任何服务器
  • DAST 扫描针对你指定的目标 URL 运行
  • LLM 审查支持 Anthropic 和 Google 两个 Provider,数据仅发送到对应 LLM API
  • 报告文件存储在本地,支持 JSON、HTML、SARIF 等格式

如果你特别在意隐私,可以选择关闭 LLM 审查,只做本地 SAST + DAST:

isitsecure scan --repo ./your-app --llm none

这样所有扫描都完全在本地完成,不依赖任何外部 AI 服务。

总结

isitsecure 解决了一个很实际的问题:AI 编码 Agent 大幅提高了写代码的速度,但代码安全审查的瓶颈没有改变。传统 SAST 工具配置复杂、误报率高,而人工审查在海量 AI 生成代码面前不现实。

它的本地优先 + AI 辅助修复的组合,让开发者可以在 shipping 之前快速回答”这代码安全吗”。对于 solo developer、小团队、以及所有用 AI 编码工具加速开发的人来说,这是一个低成本高回报的安全手段。

相关链接

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。