SQL injection — inserting malicious SQL code into queries via user input.
Example of vulnerable code:
1// DANGEROUS: never do this2const query = "SELECT * FROM users WHERE id = " + userId;
Prevention — use parameterized queries:
1// PostgreSQL with pg2const result = await pool.query(3 "SELECT * FROM users WHERE id = $1",4 [userId]5);67// MySQL with mysql28const [rows] = await connection.execute(9 "SELECT * FROM users WHERE id = ?",10 [userId]11);1213// MongoDB (no SQL injection, but validate input)14const user = await User.findById(userId);
Additional measures: