SQL escape/unescape се отнася до процеса на дезинфекция на въведения текст, така че той да може безопасно да бъде вграден в SQL изрази.
Escaping променя специалните символи (като кавички или обратни наклонени черти) по начин, който предотвратява синтактични грешки или изпълнение на злонамерен код.
Unescapeing преобразува екранираните символи обратно в оригиналната им форма, обикновено за показване или по-нататъшна обработка.
За предотвратяване на SQL инжекционни атаки, при които злонамерен вход може да промени логиката на SQL заявка.
За да избегнете синтактични грешки в заявки, когато данните съдържат символи като ', " или \.
За да поддържате целостта на данните, като гарантирате, че потребителският вход се съхранява и извлича точно както е въведен.
Ескейпирането се извършва чрез:
Удвояване на единични кавички в низове (напр. „O'Brien“ става „O''Brien“).
Използване на вградени функции за бази данни или библиотеки за правилно екраниране на входовете.
Unescapeping се случва при извличане на данните, често обработвано автоматично от базата данни или от приложния ви слой.
В съвременната разработка това обикновено се управлява от параметризирани заявки или ORM (Object-Relational Mappers), които обработват екранирането сигурно и автоматично.
Когато вмъквате или заявявате потребителски вход директно в суров SQL (не се препоръчва, освен ако не е правилно екранирано).
Когато работите с наследени системи или сурови SQL низове, където не е налице автоматична защита.
Винаги екранирайте входовете, освен ако не използвате подготвени оператори или параметризирани заявки, които са предпочитани и по-безопасни алтернативи.