Přeskočit na hlavní obsah

Kdy použít kódování URL, HTML escape a JSON escape

Od Converty Team

Zjistěte, kdy kódování URL, HTML escape a JSON escape řeší různé problémy bezpečnosti textu před vložením obsahu do cesty, stránky nebo datového snippetu.

Kdy použít kódování URL, HTML escape a JSON escape

Escape se snadno použije špatně, protože několik různých úkolů z dálky vypadá podobně. Máte text, text obsahuje speciální znaky a jiný systém ho potřebuje přijmout bez toho, aby ho špatně pochopil. Chyba je předpokládat, že jeden druh escapování funguje všude.

Kódování URL, HTML escape a JSON escape řeší různé problémy. Mezera v query stringu není stejný problém jako znak < ve vykresleném HTML nebo uvozovka uvnitř JSON stringu. Case / Slug / Escape pomáhá tím, že drží tyto outputy blízko sebe, ale užitečná část je vědět, který output patří do cíle, který připravujete.

Kódování URL je pro URL a query hodnoty

Kódování URL použijte, když text míří do části URL, zejména do query parametru nebo hodnoty, která může obsahovat mezery, interpunkci nebo znaky nevhodné pro cestu.

Představte si support odkaz, který má obsahovat vyhledávací dotaz pricing & billing. Přímé vložení této fráze do URL může změnit interpretaci URL, protože & už má význam uvnitř query stringu. Kódování URL převede text do podoby, která může cestovat uvnitř URL, aniž by se zaměnila za URL syntaxi.

To se liší od vytváření slugu. Slug obvykle mění titulek na čitelný segment cesty, například pricing-and-billing. Kódování URL zachovává původní hodnotu příměji pro přenos.

HTML escape je pro text, který se bude renderovat v HTML

HTML escape použijte, když se má text objevit jako text uvnitř HTML kontextu, ne stát se markupem.

Když příklad kódu obsahuje <button> a chcete, aby čtenáři tyto znaky viděli, prohlížeč je potřebuje escapovat. Jinak je může interpretovat jako skutečný element. HTML escape brání tomu, aby se text četl jako HTML syntaxe na místech, kde má obsah zůstat viditelným textem.

To je důležité v dokumentaci, CMS polích, changelozích i produktovém copy. Zvlášť relevantní je to u zdrojového textu s příklady markupu, snippety nebo uživatelskými hodnotami, které se nemají stát součástí struktury stránky.

JSON escape je pro string hodnoty uvnitř JSONu

JSON escape použijte, když text potřebuje bezpečně sedět uvnitř JSON stringu.

Uvozovka je v běžném textu neškodná, ale uvnitř JSON stringu může řetězec ukončit předčasně. Nový řádek také může potřebovat reprezentaci, která udrží JSON validní. JSON escape zachovává hodnotu a zároveň drží okolní JSON parsovatelný.

Často se to objevuje, když týmy sdílejí API příklady, konfigurační snippety, analytics payloady nebo ukázková data. Pokud je další krok širší čištění strukturovaných dat, spojte tento článek s Jak formátovat JSON před sdílením API příkladu a JSON / YAML / TOML převodníkem.

Vyberte escape podle cíle

Nejjednodušší pravidlo je nejdřív cíl.

CílPoužijteProč
URL query hodnota nebo část URLKódování URLBrání tomu, aby se text interpretoval jako URL syntaxe
Viditelný text uvnitř HTMLHTML escapeBrání tomu, aby se speciální znaky staly markupem
String hodnota uvnitř JSONuJSON escapeDrží uvozovky, lomítka a nové řádky parsovatelné
Veřejný titulek článku nebo routyGenerování sluguVytváří čitelný text cesty místo zachování každého znaku

Converty pomáhá, protože můžete vložit text jednou a porovnat výstupy bez otevírání samostatného encoderu pro každý případ. Úkol zůstane přiměřený. Nestavíte pipeline; připravujete jednu textovou hodnotu pro místo, kam potřebuje jít.

Otevřete Case / Slug / Escape, když se potřebujete rozhodnout, jestli má být další output slug, URL-encoded hodnota, HTML-safe text nebo JSON-safe řetězec.

Mohlo by vás také zajímat