Stringi kaitsemärgid ja nende eemaldamine
Lisa või eemalda stringi kaitsemärgid JSON-i, JavaScripti, mallliteraalide, SQL-i, CSV, HTML-atribuutide, regulaaravaldiste ja URL-ide jaoks otse brauseris.
Kaitsemärgid ei asenda parameetritega päringuid (ettevalmistatud lauseid). Kasuta seda väljundit SQL-i lugemiseks või silumiseks, mitte kunagi päringute koostamiseks kasutaja sisendist.
Kuidas stringi kaitsemärke lisada või eemaldada
- Vali sihtmärk väljal Vorming: JSON-string, JavaScripti string, JavaScripti mallliteraal, SQL-stringi literaal, CSV-väli, HTML-atribuudi väärtus, regulaaravaldis või URL-i osa.
- Kirjuta või kleebi oma tekst sisendkasti.
- Klõpsa Lisa kaitsemärgid, et muuta tavatekst turvaliseks literaaliks, või Eemalda kaitsemärgid, et muuta literaal tagasi tavatekstiks. Tulemus uueneb sisestamise ajal viimati valitud suunas.
- Kohanda vormingu juures kuvatud valikuid: Lisa ümbritsevad jutumärgid, Kaitse mitte-ASCII märgid või Tühikud kui + (vormiandmed).
- Klõpsa Kopeeri või Kasuta väljundit sisendina, et toiming ümber pöörata ja ringkäiku kontrollida.
Märkide arv enne ja pärast kuvatakse nuppude all. Kõik töötab sinu brauseris; midagi ei laadita üles.
Mida iga vorming teeb
- JSON-string: kaitseb märgid
",\ja juhtmärgid (\n,\t,\u0000…), täpselt naguJSON.stringify. Valikuga Kaitse mitte-ASCII märgid muutub iga märk üle U+007E kujule\uXXXX(emoji muutuvad asendusmärkide paariks, näiteks😀). Kaitsemärkide eemaldamine aktsepteerib teksti jutumärkidega või ilma ning talub toorreavahetusi. - JavaScripti string (‘…’): kaitseb langkriipsu, ülakoma, reavahetused ja juhtmärgid, lisaks U+2028 ja U+2029, mis rikuvad vanemaid mootoreid. Eemaldamisel mõistetakse
\x41,A,\u{1F600}, vanu kaheksandsüsteemi kaitsejadasid, nagu\101, ja reapikendusi. - JavaScripti mallliteraal (`…`): kaitseb tagurpidi ülakomad, langkriipsud ja
${, et ühtegi avaldist ei hinnataks; reavahetused ja tabulaatorid jäävad nagu on, sest mallliteraalid lubavad neid. - SQL-stringi literaal (‘…’): kahekordistab ülakomad (
O'Brien→'O''Brien'), nagu standardses SQL-is. Eemaldamisel lükatakse tagasi ülakoma, mis pole kahekordistatud. Langkriipse ei puututa: MySQL käsitleb vaikerežiimis\samuti kaitsemärgina, seega kontrolli oma andmebaasi reegleid. - CSV-väli (RFC 4180): ümbritseb välja jutumärkidega ja kahekordistab sisemised jutumärgid, kui see sisaldab koma, semikoolonit, tabulaatorit, jutumärki, reavahetust või algus- või lõputühikut. Lisa ümbritsevad jutumärgid sunnib jutumärgid peale.
- HTML-atribuudi väärtus: asendab
&,<,>,"ja'olemitega, mis on turvaline nii ühe- kui ka kahekordsetes jutumärkides atribuutides. Eemaldamisel dekodeeritakse arvviited ning&,<,>,",'ja . - Regulaaravaldis (literaaltekst): lisab langkriipsuga kaitse märkidele
. * + ? ^ $ { } ( ) | [ ] \ /ning reavahetustele ja tabulaatoritele, et muster sobiks tekstiga sõna-sõnalt. Tulemus kehtib lipugauja ilma. - URL-i osa (protsendikodeerimine): töötab nagu
encodeURIComponent, kodeerides kõik peale tähtede, numbrite ja märkide- _ . ! ~ * ' ( )UTF-8 baitidena. Tühikud kui + (vormiandmed) kasutabapplication/x-www-form-urlencodedtava.
Kaitsemärgid ei ole SQL-i turvapiir
SQL-i valimisel kuvab tööriist meeldetuletuse ja see väärib kordamist: SQL-süsti tõeline lahendus on parameetritega päring (ettevalmistatud lause), kus väärtus saadetakse SQL-tekstist eraldi. Käsitsi kaitsmine on habras: see sõltub andmebaasist, ühenduse märgistikust ja seadetest, nagu MySQL-i langkriipsu käsitlus. Kasuta seda väljundit logide lugemiseks, testandmete kirjutamiseks või päringu silumiseks, mitte kunagi päringute koostamiseks kasutaja sisendist.
CSV puhul hoiatab tööriist ka siis, kui väärtus algab märgiga =, +, - või @: arvutustabel võib seda valemina käivitada (CSV-süst). Jutumärgid seda ei takista; tavaline leevendus on väärtuse ette ülakoma või tühiku lisamine.
Korduma kippuvad küsimused
Mis vahe on JSON-stringil ja JavaScripti stringil?
JSON lubab ainult topeltjutumärke ja väikest hulka kaitsejadasid (\" \\ \/ \b \f \n \r \t \uXXXX). JavaScript aktsepteerib ka ülakomasid, tagurpidi ülakomasid, \x41, \u{…}, \v ja \0. Korrektsed JSON-i kaitsejadad on korrektsed JavaScriptis, kuid mitte vastupidi.
Miks kaitsemärkide eemaldamine ebaõnnestub teatega "vigane kaitsejada"?
Tekst sisaldab langkriipsu, millele järgneb midagi, mida vorming ei luba, näiteks \u12 vähem kui nelja kuueteistkümnendnumbriga või lõpus üksik langkriips. Veateade näitab vigast jada.
Kas CSV vajab jutumärke ümber iga välja?
Ei. RFC 4180 nõuab jutumärke ainult siis, kui väli sisaldab koma, jutumärki või reavahetust. See tööriist paneb jutumärkidesse ka semikoolonid, tabulaatorid ning algus- ja lõputühikud, sest paljud arvutustabelid kasutavad neid eraldajatena või lõikavad need ära.
Kas HTML-atribuudi kaitse piisab XSS-i vältimiseks?
See on õige jutumärkides atribuudi väärtusesse paigutatud teksti jaoks. See ei piisa atribuutide jaoks, mis ise on kood või URL-id, näiteks onclick või href="javascript:…"; need vajavad valideerimist, mitte ainult kaitsemärke.
Kas mu tekst saadetakse serverisse?
Ei. Kõik teisendused töötavad kohapeal sinu brauseris, seega võid julgelt kleepida seadistusväärtusi või andmeid, mida ei tahaks jagada.
Seotud tööriistad
- URL-i kodeerija ja dekodeerija Tasuta URL-i kodeerija ja dekodeerija. Kodeeri päringuparameetrid või terved URL-id, dekodeeri %XX jadad ja käsitle + tühikuna. Töötab sinu brauseris.
- HTML-olemite kodeerija ja dekodeerija Kodeeri erimärgid HTML-olemiteks (nimega, kümnend- või kuueteistkümnendkujul) või dekodeeri mis tahes olem, kasutades kõiki 2231 HTML5 nimega viidet.
- JSON-i vormindaja ja valideerija Tasuta JSON-i vormindaja ja valideerija, mis kaunistab, minimeerib ja kontrollib JSON-i sinu brauseris ning teatab süntaksivead rea ja veeruga.
- Regexi testija Testi JavaScripti regulaaravaldisi otse: esiletõstetud vasted, püüdvad grupid, asendus ja selge selgitus iga mustri elemendi kohta.