SQL escape/unescape, metin girişinin SQL ifadelerine güvenli bir şekilde yerleştirilebilmesi için temizlenmesi sürecini ifade eder.
Escaping, sözdizimi hatalarını veya kötü amaçlı kod yürütülmesini önleyecek şekilde özel karakterleri (tırnak işaretleri veya ters eğik çizgiler gibi) değiştirir.
Unescaping, genellikle görüntüleme veya daha fazla işleme için, kaçan karakterleri orijinal biçimlerine geri dönüştürür.
Kötü amaçlı girişin bir SQL sorgusunun mantığını değiştirebileceği SQL enjeksiyon saldırılarını önlemek için.
Veriler ', " veya \ gibi karakterler içerdiğinde sorgularda sözdizimi hatalarından kaçınmak için.
Veri bütünlüğünü korumak için, kullanıcı girişinin tam olarak girildiği gibi saklandığından ve alındığından emin olmak.
Kaçma şu şekilde yapılır:
Dizelerde tek tırnak işaretlerini iki katına çıkarmak (örneğin, 'O'Brien' 'O''Brien' olur).
Girişleri düzgün bir şekilde kaçırmak için yerleşik veritabanı işlevlerini veya kitaplıklarını kullanmak.
Kaçıştan kurtulma, genellikle veritabanı veya uygulama katmanınız tarafından otomatik olarak işlenen verileri alırken gerçekleşir.
Modern geliştirmede, bu genellikle kaçışı güvenli ve otomatik olarak işleyen parametreli sorgular veya ORM'ler (Nesne-İlişkisel Eşleyiciler) tarafından yönetilir.
Kullanıcı girdisini doğrudan ham SQL'e eklerken veya sorgularken (doğru şekilde kaçış yapılmadığı sürece önerilmez).
Otomatik korumanın olmadığı eski sistemler veya ham SQL dizeleriyle uğraşırken.
Kullanmadığınız sürece her zaman girişlerden kaçın hazırlanmış ifadeler veya parametreli sorgular, tercih edilen ve daha güvenli alternatiflerdir.