Node.js · Middle · Запитання 41 з 75
Чому в SQL-запитах треба використовувати параметри, а не склеювання рядків?
// Погано
db.query("SELECT * FROM users WHERE email = '" + email + "'");
// Добре
db.query("SELECT * FROM users WHERE email = $1", [email]);- 1Склеювання не працює з PostgreSQL
- 2Параметри повертають результати впорядкованими
- ✓Правильна відповідь: Параметри надсилаються окремо від SQL, тож дані користувача не можуть змінити запит (SQL-ін'єкція)
Пояснення
ORM і конструктори запитів параметризують за вас, але сирі запити, зібрані з рядків, усе одно вразливі.