CodeReview·AI3 free · BYOK unlimited
Code reviewed in seconds
Paste any code snippet. AI catches bugs, security holes, and performance issues — with fix suggestions. No account needed.
See it in action
Paste code → structured review in seconds
AI spots bugs, security holes, and performance issues — with fix suggestions.
fetchUserData.js
async function fetchUserData(userId) {
const query = "SELECT * FROM users WHERE id = " + userId;
const result = await db.query(query);
const password = result[0].password;
console.log("User password:", password);
return {
id: result[0].id,
name: result[0].name,
email: result[0].email,
password: password
};
}
async function updateUser(userId, data) {
await db.query(`UPDATE users SET ${JSON.stringify(data)} WHERE id=${userId}`);
return true;
}review.mdAI review
## Code Review ### Summary This code has **critical security vulnerabilities** that must be fixed before production use. Two SQL injection attack vectors, sensitive data exposure, and missing error handling were identified. --- ### Issues Found #### 🔴 Critical **SQL Injection — `fetchUserData`** String concatenation builds SQL queries directly from user input. An attacker can pass `1 OR 1=1` as `userId` to dump the entire users table. ```diff - const query = "SELECT * FROM users WHERE id = " + userId; + const query = "SELECT id, name, email FROM users WHERE id = ?"; + const result = awai…
0 / 20 000 chars
3 free reviews remaining