Code Review IA (Estilo Pull Request)PRO REVIEW
Análise estática profunda: OWASP Top 10, Clean Code, complexidade Big-O e memory leaks com feedback inline.
Cenários:
Status do Pull Request
Changes Requested (Correções Obrigatórias)
Foram encontradas 1 vulnerabilidades críticas de segurança ou problemas graves de arquitetura. O Pull Request precisa de correções antes do merge.
Revisor: DevBot PR Inspector
Score de Qualidade0 - 100
80/ 100 pts
Segurança (OWASP)55%
Manutenibilidade100%
Desempenho100%
src/handlers/checkoutService.ts
12 linhas de código1
import { Request, Response } from "express";2
import { dbClient } from "./database";3
4
export async function getUserOrders(req: Request, res: Response) {5
const userId = req.query.userId;
6
7
// Vulnerabilidade: Concatenação direta de parâmetros
8
const query = "SELECT * FROM orders WHERE user_id = '" + userId + "' AND status = 'active'";
🤖
DevBot PR Inspectorcomentou na linha 8critical
Possível SQL Injection (CWE-89 / OWASP A03)
Parâmetros externos estão sendo interpolados diretamente na query SQL. Um invasor pode injetar SQL (' OR '1'='1) para vazar o banco de dados. Utilize queries parametrizadas ($1, $2) ou um ORM com prepared statements (ex: Drizzle ORM).
Sugestão de Substituição:
const query = "SELECT * FROM orders WHERE user_id = $1 AND status = $2"; const results = await dbClient.query(query, [userId, 'active']);
9
const results = await dbClient.query(query);
10
11
return res.json({ data: results.rows });12
}