SQL escape/unescape стосується процесу очищення введеного тексту для його безпечного вбудовування в SQL-запит.
Ескейпінг змінює спеціальні символи (такі як лапки або зворотні скісні риски) таким чином, що запобігає синтаксичним помилкам або виконанню шкідливого коду.
Усунення ескейпінгу перетворює екрановані символи назад до їхньої початкової форми, зазвичай для відображення або подальшої обробки.
Для запобігання атакам SQL-ін'єкцій, коли шкідливий ввід може змінити логіку SQL-запиту.
Щоб уникнути синтаксичних помилок у запитах, коли дані містять такі символи, як ', " або \.
Щоб зберегти цілісність даних, необхідно забезпечити збереження та отримання введених користувачем даних точно так, як їх ввели.
Екранування здійснюється за допомогою:
Подвоєння одинарних лапок у рядках (наприклад, 'O'Brien' стає 'O''Brien').
Використання вбудованих функцій бази даних або бібліотек для правильного екранування вхідних даних.
Зміна екранування відбувається під час отримання даних, часто автоматично обробляючись базою даних або рівнем вашої програми.
У сучасній розробці це зазвичай керується параметризованими запитами або ORM (об'єктно-реляційними відображеннями), які безпечно та автоматично обробляють екранування.
Під час вставки або запиту введених користувачем даних безпосередньо в сирий SQL (не рекомендується, якщо не виконано належне екранування).
Під час роботи зі застарілими системами або сирими рядками SQL, де автоматичний захист не встановлений.
Завжди екрануйте вхідні дані, якщо не використовуються підготовлені оператори або параметризовані запити, які є кращими та безпечнішими альтернативи.