Przejdź do głównej treści

Kiedy używać kodowania URL, zmiany znaczenia HTML i zmiany znaczenia JSON

Autor: Converty Team

Dowiedz się, kiedy kodowanie URL, zmiana znaczenia HTML i zmiana znaczenia JSON rozwiązują różne problemy związane z bezpieczeństwem tekstu, zanim wkleisz treść do ścieżki, strony lub fragmentu danych.

Kiedy używać kodowania URL, zmiany znaczenia HTML i zmiany znaczenia JSON

Ucieczkę łatwo popełnić źle, ponieważ kilka różnych zawodów z daleka wygląda podobnie. Masz tekst, który zawiera znaki specjalne i inny system musi go odebrać bez niezrozumienia. Błędem jest założenie, że wszędzie działa jeden rodzaj ucieczki.

Kodowanie URL, ucieczka HTML i ucieczka JSON rozwiązują różne problemy. Spacja w ciągu zapytania nie stanowi tego samego problemu, co znak < w renderowanym kodzie HTML lub cudzysłów w ciągu JSON. Narzędzie Case / Slug / Escape pomaga w utrzymywaniu tych wyników blisko siebie, ale użyteczną częścią jest wiedza, które dane wyjściowe należą do przygotowywanego miejsca docelowego.

Kodowanie URL dotyczy adresów URL i wartości zapytań

Użyj kodowania adresu URL, gdy tekst trafia do komponentu adresu URL, zwłaszcza parametru zapytania lub wartości, która może zawierać spacje, znaki interpunkcyjne lub znaki, które nie zapewniają bezpiecznej ścieżki.

Załóżmy, że link do pomocy musi zawierać wyszukiwane hasło, takie jak pricing & billing. Wklejenie tej frazy bezpośrednio do adresu URL może zmienić sposób interpretacji adresu URL, ponieważ element & ma już znaczenie w ciągu zapytania. Kodowanie adresu URL zamienia tekst w formę, która może przemieszczać się w obrębie adresu URL, nie myląc go ze składnią adresu URL.

Różni się to od tworzenia slug. A slug zwykle zamienia tytuł na czytelny segment ścieżki, taki jak pricing-and-billing. Kodowanie adresu URL zachowuje oryginalną wartość w bardziej bezpośredni sposób na potrzeby transportu.

Zmiana znaczenia HTML dotyczy tekstu, który będzie renderowany w formacie HTML

Użyj zmiany znaczenia HTML, gdy tekst ma być wyświetlany jako tekst w kontekście HTML, a nie jako znacznik.

Jeśli przykładowy kod zawiera <button> i chcesz, aby czytelnicy widzieli te znaki, przeglądarka wymaga zmiany znaków. W przeciwnym razie może zinterpretować je jako rzeczywisty element. Ucieczka HTML polega na zapobieganiu odczytywaniu tekstu jako składni HTML w miejscach, gdzie treść powinna pozostać widocznym tekstem.

Ma to znaczenie w dokumentacji, polach CMS, dziennikach zmian i kopii produktu. Jest to szczególnie istotne, gdy tekst źródłowy zawiera przykłady znaczników, fragmentów lub wartości generowanych przez użytkowników, które nie powinny stać się częścią struktury strony.

Ucieczka JSON dotyczy wartości ciągów wewnątrz JSON

Użyj ucieczki JSON, gdy tekst musi bezpiecznie znajdować się w ciągu JSON.

Cudzysłów jest nieszkodliwy w normalnej prozie, ale w ciągu JSON może wcześniej zamknąć ciąg. Nowa linia może również wymagać reprezentacji, która utrzymuje ważność JSON. Ucieczka JSON polega na zachowaniu wartości przy jednoczesnym zapewnieniu możliwości analizy otaczającego JSON.

Często pojawia się to, gdy zespoły udostępniają przykłady interfejsów API, fragmenty konfiguracji, ładunki analityczne lub przykładowe dane. Jeśli następnym krokiem będzie szersze czyszczenie danych strukturalnych, połącz ten artykuł z artykułami Jak sformatować JSON przed udostępnieniem przykładu interfejsu API i Konwerterem JSON / YAML / TOML.

Wybierz ucieczkę w zależności od miejsca docelowego

Najprostsza zasada to przede wszystkim cel podróży.

Miejsce doceloweUżywaćDlaczego
Wartość zapytania URL lub komponent adresu URLKodowanie adresu URLZapobiega interpretacji tekstu jako składni adresu URL
Widoczny tekst wewnątrz HTMLUcieczka HTMLChroni znaki specjalne przed staniem się znacznikami
Wartość ciągu wewnątrz JSONUcieczka JSONUmożliwia analizę cudzysłowów, ukośników i podziałów wierszy
Tytuł artykułu lub trasy publicznejpokolenie SlugTworzy czytelny tekst ścieżki zamiast zachowywać każdy znak

Konwersja pomaga, ponieważ możesz wkleić raz i porównać wyniki bez otwierania osobnego kodera dla każdego przypadku. Dzięki temu praca jest proporcjonalna. Nie budujesz rurociągu; przygotowujesz jedną wartość tekstową dla miejsca, w którym ma się znaleźć.

Otwórz narzędzie Case / Slug / Escape, gdy musisz zdecydować, czy następnym wyjściem powinno być slug, wartość zakodowana w adresie URL, tekst bezpieczny w formacie HTML czy ciąg znaków zgodny z JSON.

Może Ci się też spodobać