SQL escape/unescape се односи на процес дезинфекције унетог текста како би се могао безбедно уградити у SQL изразе.
Избегавање модификује специјалне знакове (као што су наводници или обрнуте косе црте) на начин који спречава синтаксичке грешке или извршавање злонамерног кода.
Избегавање конвертује избегнуте знакове назад у њихов првобитни облик, обично за приказ или даљу обраду.
Да би се спречили SQL инјекцијски напади, где злонамерни унос може променити логику SQL упита.
Да бисте избегли синтаксичке грешке у упитима када подаци садрже знакове попут ', " или \.
Да бисте одржали интегритет података, осигуравајући да се кориснички унос чува и преузима тачно онако како је унет.
Ескејповање се врши:
Удвостручавањем једноструких наводника у стринговима (нпр., 'O'Brien' постаје 'O''Brien').
Коришћењем уграђених функција базе података или библиотека за правилно ескејповање уноса.
Избегавање избегавања се дешава приликом преузимања података, често аутоматски од стране базе података или вашег апликацијског слоја.
У модерном развоју, ово се обично управља помоћу параметризованих упита или ORM-ова (мапирачи објеката и релације), који безбедно и аутоматски обрађују избегавање.
Приликом уметања или упитања корисничког уноса директно у сирови SQL (не препоручује се осим ако није правилно избегнуто).
Приликом рада са застарелим системима или сировим SQL стринговима где аутоматска заштита није на месту.
Увек избегавајте уносе осим ако не користите припремљене изјаве или параметризоване упите, који су пожељнији и безбеднији алтернативе.п> ли> ул>