深度漏洞检测
追踪数据从请求到数据库的完整流向,发现模式匹配类 Linter 遗漏的注入、访问控制失效、密钥泄露、SSRF 和逻辑缺陷。每个问题都映射到对应的 CWE。
用户搜索中的 SQL 注入
req.query.name 被直接拼接进查询语句,任何访问者都能读取或删除 users 表。
41 export async function search(req) {- 42 const q = `SELECT * FROM users WHERE name = '${req.query.name}'`;+ 42 const q = 'SELECT * FROM users WHERE name = $1';+ 43 return db.query(q, [req.query.name]);有据可依的风险评分,几分钟内即可处理的问题。
acme/storefront · 示例报告 · 演示数据
每个问题都包含具体代码行、CWE 类别和补丁。点击展开。
lib/billing.ts:3
- const stripe = new Stripe("sk_live_51H…");
+ const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!); // and rotate the leaked key
app/api/invoices/[id]/route.ts:12
- const invoice = await db.invoice.findUnique({ where: { id } });
+ const invoice = await db.invoice.findFirst({ where: { id, userId: session.user.id } });
app/login/page.tsx:27
- router.push(searchParams.get('next') ?? '/');
+ router.push(safeRelativePath(searchParams.get('next')));