Hogyan működik a HTML entitás kódolás
Egy HTML entitás egy karakterhivatkozás, amit a böngésző visszaalakít egyetlen karakterré.
- Válassz módot és hatályt. A kódolási mód karakterről karakterre járja be a bemenetet. A dekódolási mód entitás mintákat keres.
- Válassz entitás stílust. A névszerinti entitások jól olvashatók a forrásban. A decimális és hex hivatkozások minden Unicode kódponthoz elérhetők.
- Bemenet bejárása. Kódoláskor minden kódpontot ellenőrizünk a beépített táblában. Dekódoláskor egy reguláris kifejezéssel keresünk.
- Karakterekhez rendelés. A névszerinti találatok egy fordított táblán keresztül oldódnak fel. A numerikus találatok a
String.fromCodePoint-on mennek keresztül. - Élő mód. Kapcsold be az élő módot, és minden billentyűleütés újrafuttatja a konverziót 150 ms debounce-szal.
Miért kódolj HTML entitásokat
- A felhasználói bemenet ne törje meg az elrendezést. Amikor egy felhasználó egy
<-t ír be, a szöveg HTML-be dobása átírja az oldal többi részét. - Attribútum értékek érvényességének megőrzése. Egy idézőjeles karakterlánc HTML attribútumba ágyazásához az idézőjelet le kell cserélni.
- Véletlen HTML semlegesítése tárolt adatokban. A naplók és hibajelentések gyakran tartalmaznak szögletes zárójeleket és és jeleket.
- Kódrészletek biztonságos megosztása. Példa tag-ek beillesztése blog bejegyzésbe vagy e-mailbe kódolást igényel.
Gyakori alkalmazások
Az entitás kódolás ott jelenik meg, ahol nyers szöveg HTML-be kerül futási időben.
- Szerver által renderelt sablonok: Jinja2, ERB, Twig és Handlebars alapértelmezés szerint escape-elnek.
- E-mail és hírlevél szerkesztés: sok ESP sablonmotor nem escape-eli automatikusan a mezőket.
- Dokumentáció és kódminták: példa HTML tag-ek beillesztése blog bejegyzésbe.
Egy kidolgozott példa
Illeszd be a <script>alert('hi')</script> szöveget Kódolás módban, Névszerinti stílussal.
FAQ
Mik azok a HTML entitások?
A HTML entitások karakterhivatkozások, amelyeket a böngésző egyetlen karakterré alakít vissza az oldal elemzésekor.
Mikor használjak névszerinti vs numerikus entitásokat?
Névszerinti entitásokat használj, ha a forrás olvashatósága fontos. Numerikusat, ha a fogyasztó régebbi vagy szigorúbb.
A dekódolás kezeli a hex entitásokat, mint a &?
Igen. A dekódoló egyetlen regex-et használ, ami mindhárom entitás formát egy menetben felismeri.
Biztonságos ez a nem megbízható bemenettel?
A kodek maga csak böngészőben fut, és nem küldi sehova a bemenetet. A kimenet biztonsága a kontextustól függ.
A böngészőoldali entitás kódolás a felhasználói bemenet és a megjelenített HTML határán helyezkedik el.