Sətir Escape Aləti

Oflayn işləyirHeç nə yüklənmirPulsuz, qeydiyyatsız

Bu tabda escape olunur — sətirləriniz tabdan çıxmır.

Bir sətir, altı escape: JSON, HTML, URL, Base64, SQL və regex — əsl tərsi olan hər yerdə iki istiqamət. Regex escape dürüstcə birtərəflidir; xarab giriş isə əzilmiş mətn əvəzinə aydın imtina ilə qayıdır.

Altı dil, bir toqquşma

Hər escape ona görə var ki, mətn davamlı başqa mətnin içinə düşür: JSON stringində dırnaq, HTML-də <, SQL literalında apostrof. Ev sahibi dilin ayırıcıları var; datanızda onlar ola bilər; escape ikisini ayrı saxlayan müqavilədir.

Müqavilələr geri dönərlikdə fərqlənir. JSON, HTML, URL, Base64 və SQL dəqiq tərslər tərif edir — bu səhifə hər iki istiqaməti ciddi yoxlama ilə qurur: içində etibarsız UTF-8 gizlənən Base64 mojibake yox, imtina qaytarır. Regex yalnız zireh tərif edir — tabında da iddia əvəzinə bir istiqamət və qeyd var.

Tez-tez verilən suallar

Harada hansı escape lazımdır?

API və konfiqdəki string dəyərlərə JSON; mətn markup içinə düşəndə HTML (beş xüsusi: & < > " '); query-string dəyərlərinə URL; baytları yalnız-mətn kanallardan keçirməyə Base64; SQL string literalına qoşa dırnaq; istifadəçinin axtarış sözü patterndə hərfi uyğunlaşmalı olanda regex.

Base64 mətnimi niyə üçdə bir böyüdür?

Hər 3 baytı 64 simvollu əlifbadan 4 simvola köçürür — çıxış padding-dən əvvəl 4/3 ölçüdədir. Bu nə sıxma, nə şifrələmədir — xam baytları əzəcək kanallardan sağ keçirən zirehdir. Kiril və ə baha başa gəlir, çünki UTF-8 belə hərfə əvvəlcə 2 bayt xərcləyir.

Regex escape niyə birtərəflidir?

Çünki niyyəti bilmədən escape geri açılmır: a\.b-dəki slash bu alətin qoyduğu zireh də ola bilər, patterninizdə onsuz da olan hərfi slash da. Buradakı hər başqa rejimin bu suala cavab verən spesifikasiyası var; regex-in yoxdur — alət də təxmin etməkdən imtina edir.

Escape SQL injection və XSS-i dayandırmağa bəsdir?

Mexanizmdir, strategiya deyil. SQL üçün parametrli sorğular əl ilə escape edilmiş literalı hər dəfə üstələyir — bunu literal qurmağa həqiqətən məcbur olanda işlədin. HTML üçün çıxışda escape məhz şablon mühərriklərinin etdiyidir; əllə etmək mühərriksiz yerlər üçündür.

Oxşar alətlər