Escape/Unescape ta’ Strings
Agħmel escape jew unescape ta’ string għal JSON, JavaScript, template literals, SQL, CSV, attributi HTML, espressjonijiet regolari u URLs, fil-brawżer tiegħek.
L-escaping mhuwiex sostitut għall-queries parametrizzati (prepared statements). Uża dan ir-riżultat biex taqra jew tiddibaggja SQL, qatt biex tibni queries minn dħul tal-utent.
Kif tagħmel escape jew unescape ta’ string
- Agħżel il-mira f’Format: string JSON, string JavaScript, template literal JavaScript, literal string SQL, qasam CSV, valur ta’ attribut HTML, espressjoni regolari jew komponent URL.
- Ikteb jew waħħal it-test tiegħek fil-kaxxa tad-dħul.
- Ikklikkja Escape biex tibdel test sempliċi f’literal sigur, jew Unescape biex terġa’ tibdel literal f’test sempliċi. Ir-riżultat jiġi aġġornat hekk kif tikteb, fid-direzzjoni li għażilt l-aħħar.
- Aġġusta l-għażliet li jidhru għall-format: Żid il-virgoletti ta’ madwar, Escape tal-karattri mhux ASCII jew Spazji bħala + (data tal-formola).
- Ikklikkja Ikkopja, jew Uża r-riżultat bħala dħul biex tinverti l-operazzjoni u tiċċekkja ċ-ċiklu sħiħ.
L-għadd tal-karattri qabel u wara jidher taħt il-buttuni. Kollox jaħdem fil-brawżer tiegħek; xejn ma jittella’.
X’jagħmel kull format
- String JSON: jagħmel escape ta’
",\u karattri ta’ kontroll (\n,\t,\u0000…), eżattament bħalJSON.stringify. B’Escape tal-karattri mhux ASCII, kull karattru ’l fuq minn U+007E isir\uXXXX(l-emoji jsiru par surrogate bħal😀). L-unescape jaċċetta t-test bil-virgoletti doppji jew mingħajrhom, u jittollera qatgħat tas-linja mhux ipproċessati. - String JavaScript (‘…’): jagħmel escape tal-backslash, il-virgoletta waħda, il-qatgħat tas-linja u l-karattri ta’ kontroll, flimkien ma’ U+2028 u U+2029, li jkissru magni eqdem. L-unescape jifhem
\x41,A,\u{1F600}, escapes ottali antiki bħal\101u kontinwazzjonijiet tal-linja. - Template literal JavaScript (`…`): jagħmel escape ta’ backticks, backslashes u
${biex ebda espressjoni ma tiġi evalwata; il-qatgħat tas-linja u t-tabs jibqgħu kif inhuma, għax it-template literals jippermettuhom. - Literal string SQL (‘…’): idoppja l-virgoletti waħdiet (
O'Brien→'O''Brien'), kif f’SQL standard. L-unescape jirrifjuta virgoletta li mhijiex imdoppjata. Il-backslashes jitħallew kif inhuma: MySQL fil-mod default tiegħu jittratta\ukoll bħala karattru ta’ escape, għalhekk iċċekkja r-regoli tad-database tiegħek. - Qasam CSV (RFC 4180): iqiegħed il-qasam bejn virgoletti doppji u idoppja l-virgoletti interni meta jkun fih virgola, punt u virgola, tab, virgoletta, qatgħa tas-linja jew spazju fil-bidu/fl-aħħar. Żid il-virgoletti ta’ madwar iġiegħel il-virgoletti.
- Valur ta’ attribut HTML: jissostitwixxi
&,<,>,"u'b’entitajiet, li huwa sigur kemm f’attributi bil-virgoletti waħdiet kif ukoll bid-doppji. L-unescape jiddekodifika referenzi numeriċi u&,<,>,",'u . - Espressjoni regolari (test litterali): jagħmel escape b’backslash ta’
. * + ? ^ $ { } ( ) | [ ] \ /, flimkien ma’ qatgħat tas-linja u tabs, biex il-mudell jaqbel mat-test litteralment. Ir-riżultat huwa validu bil-flagujew mingħajru. - Komponent URL (percent-encoding): jaħdem bħal
encodeURIComponent, jikkodifika kollox ħlief ittri, ċifri u- _ . ! ~ * ' ( )bħala bytes UTF-8. Spazji bħala + (data tal-formola) juża l-konvenzjoniapplication/x-www-form-urlencoded.
L-escaping mhuwiex fruntiera tas-sigurtà għal SQL
Meta tagħżel SQL, l-għodda turi tfakkira, u jixirqilha li tiġi ripetuta: ir-rimedju veru għall-SQL injection huwa query parametrizzata (prepared statement), fejn il-valur jintbagħat separat mit-test SQL. L-escaping bl-idejn huwa fraġli: jiddependi mid-database, mis-sett tal-karattri tal-konnessjoni u minn settings bħall-immaniġġjar tal-backslash ta’ MySQL. Uża dan ir-riżultat biex taqra l-logs, tikteb fixtures jew tiddibaggja query, qatt biex tibni queries minn dħul tal-utent.
Għas-CSV, l-għodda twissi wkoll meta valur jibda b’=, +, - jew @: spreadsheet jista’ jħaddmu bħala formula (CSV injection). Il-virgoletti ma jipprevjenux dan; il-prefiss b’apostrofu jew spazju huwa t-tnaqqis tas-soltu.
Mistoqsijiet frekwenti
X’inhi d-differenza bejn string JSON u string JavaScript?
JSON jippermetti biss virgoletti doppji u sett żgħir ta’ escapes (\" \\ \/ \b \f \n \r \t \uXXXX). JavaScript jaċċetta wkoll virgoletti waħdiet, backticks, \x41, \u{…}, \v u \0. Escapes JSON validi huma validi f’JavaScript, iżda mhux bil-maqlub.
Għaliex l-unescape jfalli b’“sekwenza ta’ escape invalida”?
It-test fih backslash segwit minn xi ħaġa li l-format ma jippermettix, bħal \u12 b’inqas minn erba’ ċifri eżadeċimali, jew backslash waħdu fl-aħħar. Il-messaġġ ta’ żball juri s-sekwenza difettuża.
Is-CSV jeħtieġ virgoletti madwar kull qasam?
Le. L-RFC 4180 jirrikjedi l-virgoletti biss meta l-qasam ikun fih virgola, virgoletta doppja jew qatgħa tas-linja. Din l-għodda tqiegħed bejn virgoletti wkoll il-punt u virgola, it-tabs u l-ispazji fil-bidu jew fl-aħħar, għax ħafna spreadsheets jużawhom bħala delimitaturi jew jaqtgħuhom.
L-escape ta’ attribut HTML huwa biżżejjed biex jipprevjeni XSS?
Huwa korrett għal test imqiegħed ġewwa valur ta’ attribut bejn virgoletti. Mhuwiex biżżejjed għal attributi li huma stess kodiċi jew URLs, bħal onclick jew href="javascript:…"; dawk jeħtieġu validazzjoni, mhux biss escaping.
It-test tiegħi jintbagħat lil xi server?
Le. Il-konverżjonijiet kollha jaħdmu lokalment fil-brawżer tiegħek, għalhekk tista’ twaħħal b’mod sigur valuri ta’ konfigurazzjoni jew data li ma taqsamx.
Għodod relatati
- Kodifikatur u Dekodifikatur tal-URL Kodifikatur u dekodifikatur tal-URL b’xejn. Għamel percent-encode ta’ parametri tal-query jew URLs sħaħ, iddekodifika sekwenzi %XX u ittratta + bħala spazju.
- Kodifikatur u dekodifikatur tal-entitajiet HTML Ikkodifika karattri speċjali bħala entitajiet HTML (bl-isem, deċimali jew hex) jew iddekodifika kwalunkwe entità, bil-lista sħiħa ta’ 2,231 referenza HTML5.
- Formatter u validatur tal-JSON Formatter u validatur tal-JSON b’xejn li jibbewtifika, jimminimizza u jiċċekkja l-JSON fil-brawżer tiegħek, b’żbalji tas-sintassi bil-linja u l-kolonna.
- Ittestjar tar-Regex Ittestja espressjonijiet regolari JavaScript live b’taqbiliet enfasizzati, gruppi, sostituzzjoni u spjegazzjoni b’lingwaġġ sempliċi ta’ kull token.