0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
Ustawienia
Koduj i dekoduj jednostki HTML. Essential koduje tylko 5 znaków, które łamią HTML: & < > " ' . Extended koduje także wszystkie znaki nie-ASCII. Wybierz między nazwanymi jednostkami (&), liczbą dziesiętną (& ) lub heksadecimalnie (&#x26;).
Działanie
Zakres
Format
0

Jak to działa

Encje HTML reprezentują znaki mające specjalne znaczenie w znaczniku (< > & " ') lub niebędące ASCII, za pomocą sekwencji takich jak &lt;, &amp; czy &#169;. Dzięki temu przeglądarka pokazuje je jako tekst, zamiast interpretować jako kod.

Istnieją trzy równoważne formaty: nazwany (&copy;), dziesiętny (&#169;) i szesnastkowy (&#xA9;). Wszystkie trzy dają ten sam znak; nazwany jest bardziej czytelny, ale istnieje tylko dla znanego zbioru.

Zakres „niezbędny” escape'uje tylko znaki, które psują HTML (& < > " '); zakres „wszystkie” escape'uje dodatkowo każdy znak spoza ASCII.

Przykłady

<a href="#">&lt;a href=&quot;#&quot;&gt;Escape'owanie zapobiega interpretowaniu znaczników przez przeglądarkę i pokazuje je jako tekst.
5 < 10 & 3 > 15 &lt; 10 &amp; 3 &gt; 1
© 2024 · €&copy; 2024 · &euro;Z zakresem „wszystkie” i formatem nazwanym. W systemie dziesiętnym byłyby to &#169; i &#8364;; w szesnastkowym &#xA9; i &#x20AC;.

Przypadki użycia

  • Pokazać kod HTML jako tekst na stronie (przykłady, dokumentacja) bez jego renderowania.
  • Escape'ować dane wejściowe użytkownika przed wstawieniem ich do HTML, aby zapobiec XSS.
  • Wstawiać znaki specjalne (©, €, →, ½) w sposób przenośny między kodowaniami.
  • Zdekodować tekst z encjami skopiowany z kodu źródłowego strony.

Najczęstsze pytania

Który format jest najlepszy: nazwany, dziesiętny czy szesnastkowy?

Nazwany (&copy;) jest najbardziej czytelny, ale obejmuje tylko znaki z określoną nazwą. Dziesiętny (&#169;) i szesnastkowy (&#xA9;) działają dla dowolnego znaku Unicode, więc są bezpieczną opcją dla rzadkich symboli.

Czy kodowanie encji zapobiega atakom XSS?

To ważny element, ale escape'owanie musi być dostosowane do kontekstu (treść HTML, atrybut, JavaScript lub URL). Nie polegaj na jednej warstwie: korzystaj też z zabezpieczeń frameworka.

Które znaki zawsze trzeba escape'ować?

& < i > w treści oraz dodatkowo " i ' wewnątrz wartości atrybutów. Zakres „niezbędny” obejmuje dokładnie ten zbiór.

Czy mój tekst jest wysyłany na serwer?

Nie. Kodowanie i dekodowanie odbywają się w całości w przeglądarce.