{ }JSONKit.tools

Kodowanie encji HTML

Ochroń tekst, żeby mógł bezpiecznie siedzieć wewnątrz HTML-a. Minimalne obejmuje pięć znaków psujących znaczniki; Wszystko spoza ASCII zamienia dodatkowo wszystko powyżej ASCII na odwołania liczbowe.

Koduj⇄Dekoduj
Chroń

Tekst

Chronione

Czekam na dane…

O tym narzędziu

Tekst staje się znacznikami w chwili, gdy pojawi się w nim ampersand albo nawias ostrokątny — tak właśnie zabłąkany < zamienia resztę akapitu w niedomknięty znacznik. Kodowanie zastępuje te znaki odwołaniami, które parser czyta jako zwykły tekst. Zestaw minimalny — ampersand, oba nawiasy ostrokątne i oba rodzaje cudzysłowów — to dokładnie to, czego potrzeba, by wstawić tekst na stronę albo do atrybutu w cudzysłowach. Szerszy tryb chroni dodatkowo litery ze znakami diakrytycznymi, symbole i emoji — z myślą o ścieżkach przetwarzania, którym nie można powierzyć UTF-8.

Jak używać

  1. 1Wklej tekst, który chcesz umieścić wewnątrz HTML-a.
  2. 2Zostaw Minimalne dla zwykłego tekstu strony albo wybierz Wszystko spoza ASCII dla celu bez UTF-8.
  3. 3Skopiuj chroniony wynik wprost do swojego szablonu.

Częste pytania

›Które znaki trzeba chronić?

W tekście strony naprawdę psują parsowanie dwa: & i <. Wewnątrz wartości atrybutu potrzebny jest jeszcze użyty cudzysłów. Ochrona także > oraz obu rodzajów cudzysłowów to bezpieczny nawyk i właśnie to robi tutaj Minimalne.

›Czy ochrona sprawia, że dane od użytkownika można bezpiecznie wstawić na stronę?

Jest konieczna, ale niewystarczająca. Ochrona tych pięciu znaków jest właściwa dla tekstu i atrybutów w cudzysłowach; nie wystarcza wewnątrz bloku <script>, w regule stylu ani w atrybucie adresu w rodzaju href, gdzie obowiązują inne reguły. Lepiej sięgnąć po textContent albo silnik szablonów, który chroni za Ciebie.

›Kiedy przydaje się tryb Wszystko spoza ASCII?

Gdy wynik musi przetrwać kanał, który nie jest UTF-8: stary szablon e-maila, pole w wiekowym CMS-ie albo plik, którego kodowania nie kontrolujesz. Każdy znak powyżej ASCII staje się odwołaniem liczbowym, które przeczyta dowolny parser.

›Odwołania nazwane czy liczbowe?

Nazwane, jak &copy;, czyta się lepiej; liczbowe, jak &#169;, działają zawsze, bo parser nie musi znać nazwy. Ta strona używa odwołań nazwanych dla pięciu znaków HTML-a i liczbowych dla całej reszty.