Preskočiť na hlavný obsah

Kedy použiť kódovanie adresy URL, kódovanie HTML a kódovanie JSON

Autor: Converty Team

Pred vložením obsahu do cesty, stránky alebo útržku údajov sa dozviete, kedy kódovanie URL, kódovanie HTML a kódovanie JSON rieši rôzne problémy s bezpečnosťou textu.

Kedy použiť kódovanie adresy URL, kódovanie HTML a kódovanie JSON

Útek sa dá ľahko pomýliť, pretože niekoľko rôznych úloh vyzerá z diaľky podobne. Máte text, text obsahuje špeciálne znaky a iný systém ho potrebuje prijať bez toho, aby ho nesprávne pochopil. Omyl je v domnienke, že jeden druh úniku funguje všade.

Kódovanie URL, kódovanie HTML a kódovanie JSON riešia rôzne problémy. Medzera v reťazci dopytu nie je rovnaký problém ako znak < vo vykreslenom kóde HTML alebo úvodzovky v reťazci JSON. Nástroj Case / Slug / Escape pomáha udržiavať tieto výstupy blízko seba, ale užitočná časť je vedieť, ktorý výstup patrí do cieľa, ktorý pripravujete.

Kódovanie adresy URL je určené pre adresy URL a hodnoty dopytov

Kódovanie adresy URL použite, keď text prechádza do komponentu adresy URL, najmä parameter dopytu alebo hodnota, ktorá môže obsahovať medzery, interpunkciu alebo znaky, ktoré nie sú bezpečné pre cestu.

Predpokladajme, že odkaz na podporu musí obsahovať hľadaný výraz, napríklad pricing & billing. Vloženie tejto frázy priamo do adresy URL môže zmeniť spôsob interpretácie adresy URL, pretože výraz & už má význam v reťazci dopytu. Kódovanie adresy URL zmení text na formu, ktorá sa môže pohybovať v rámci adresy URL bez toho, aby bola zmätená syntaxou adresy URL.

Toto sa líši od vytvorenia slug. slug zvyčajne zmení názov na čitateľný segment cesty, napríklad pricing-and-billing. Kódovanie adresy URL priamo zachová pôvodnú hodnotu pre prenos.

Escapovanie HTML je pre text, ktorý bude vykreslený v HTML

Escapovanie HTML použite, keď sa text musí zobraziť ako text v kontexte HTML, a nie sa z neho stať označenie.

Ak príklad kódu obsahuje <button> a chcete, aby čitatelia videli tieto znaky, prehliadač potrebuje znaky escape. V opačnom prípade ich môže interpretovať ako skutočný prvok. Escapovanie HTML je o zabránení čítaniu textu ako syntaxe HTML na miestach, kde by mal obsah zostať viditeľným textom.

Na tom záleží v dokumentácii, poliach CMS, protokoloch zmien a kópii produktu. Je to dôležité najmä vtedy, keď zdrojový text obsahuje príklady značiek, úryvkov alebo hodnôt vygenerovaných používateľom, ktoré by sa nemali stať súčasťou štruktúry stránky.

Escapovanie JSON je pre hodnoty reťazcov vo vnútri JSON

Escapovanie JSON použite, keď text musí bezpečne sedieť v reťazci JSON.

Úvodzovky sú v normálnej próze neškodné, ale vo vnútri reťazca JSON môžu reťazec predčasne uzavrieť. Nový riadok môže tiež potrebovať reprezentáciu, ktorá zachováva platnosť JSON. Escapovanie JSON je o zachovaní hodnoty pri zachovaní analyzovateľnosti okolitého JSON.

Často sa to objavuje, keď tímy zdieľajú príklady rozhrania API, útržky konfigurácie, analytické údaje alebo vzorové údaje. Ak je ďalším krokom širšie vyčistenie štruktúrovaných údajov, spárujte tento článok s Ako naformátovať JSON pred zdieľaním príkladu rozhrania API a prevodník JSON/YAML/TOML.

Vyberte únik na základe cieľa

Najjednoduchším pravidlom je destinácia ako prvá.

CieľPoužitePrečo?
Hodnota dopytu adresy URL alebo komponent adresy URLkódovanie adresy URLZabráni tomu, aby bol text interpretovaný ako syntax adresy URL
Viditeľný text vo vnútri HTMLHTML escapovanieZabraňuje tomu, aby sa zo špeciálnych znakov stali značky
Hodnota reťazca vo vnútri JSONÚnik JSONUdržuje úvodzovky, lomky a zlomy riadkov analyzovateľné
Verejný názov článku alebo trasySlug generáciaVytvára čitateľný text cesty namiesto zachovania každého znaku

Konverzia pomáha, pretože môžete vložiť raz a porovnať výstupy bez otvárania samostatného kódovača pre každý prípad. Tým je práca proporcionálna. Nebudujete potrubie; pripravujete jednu textovú hodnotu pre miesto, kam sa má dostať.

Otvorte nástroj Case / Slug / Escape, keď sa potrebujete rozhodnúť, či ďalší výstup má byť slug, hodnota zakódovaná do adresy URL, text bezpečný pre HTML alebo bezpečný reťazec JSON.

Mohlo by sa vám páčiť