HTML Varlık Kodlama

İşaretleme karakterleri bozulmadan kalsın diye bir metni HTML varlıklarıyla kaçışlayın; tarayıcınızda.

Tamamen tarayıcınızda çalışır. Hiçbir şey yüklenmez, günlüğe yazılmaz veya saklanmaz.

Beş karakter, işaretlemenin anlamını değiştirmeden HTML’de olduğu gibi yer alamaz: ve işareti (&), iki açılı ayraç ve iki tür tırnak. Bunları kaçışlamak, bir metin parçasını tarayıcının itaat etmek yerine göstereceği bir metin parçasına dönüştürür.

Nasıl çalışır

Asgari mod yalnızca bu beş karakteri kaçışlar. Neredeyse her zaman doğru seçim budur: sayfanız UTF-8 ve dosyalarınız UTF-8 ise aksanlı bir harfin kaçışlanmaya ihtiyacı yoktur ve onu kaçışlamak, hiçbir kazanç sağlamadan kaynak kodu okumayı zorlaştırır.

Adlandırılmış varlıklar, HTML 4.01’in ad verdiği tüm karakterlerin yerine geçer: toplam 252 tane; é için é, © için ©. Çıktı, ASCII üstündeki her şeyi bozan bir şeyden geçmek zorundaysa bunları kullanın; örneğin eski bir e-posta sistemi ya da yanlış harmanlamaya (collation) sahip bir veritabanı sütunu.

Sayısal referanslar aynı güvenceyi ad yerine kod noktası üzerinden verir; dolayısıyla yalnızca adı olan 252 karakterle değil, her karakterle çalışırlar. Onaltılık olarak ve kapanış noktalı virgülüyle yazılırlar; bunu her ayrıştırıcı kabul eder.

Örnekler

Durum Girdi Sonuç
Çalıştırılmayıp gösterilmesi gereken bir etiket <script>alert(1)</script> &lt;script&gt;alert(1)&lt;/script&gt;
Bir değerin içindeki ampersand Tom & Jerry Tom &amp; Jerry
Adlandırılmış, aksanlı bir harf café caf&eacute;

Sık sorulan sorular

Burada kaçışlamak, bir kullanıcının girdisini güvenli kılmaya yeter mi?

Etiketler arasındaki metin ve tırnak içindeki bir öznitelik değeri için evet: tırnaklar da kaçışlanır. Başka yerlerde hayır: bir URL’ye, bir stil bloğuna ya da bir betik bloğuna giden bir değer kendi kaçışlamasını gerektirir ve HTML varlıkları bu üçü için de yanlış araçtır. Kaçışlamayı çıktı noktasında, o çıktının bağlamında, kodunuzda yapın; metni bir web sayfasına yapıştırarak değil.

Kesme işareti neden &apos; değil de &#039; olarak kaçışlanıyor?

&apos; HTML 4.01’de yoktur. XHTML’de, ardından HTML5’te eklenmiştir ve eski tarayıcılar onu olduğu gibi gösterir. Sayısal biçim her zaman her yerde çalışmıştır.

Hangi adlandırılmış varlıklar destekleniyor?

HTML 4.01’in 252 varlığı. HTML5 çoğu matematiksel olan yaklaşık iki bin tane daha tanımlar ve bunlar burada yer almaz. Bu kümede adı olmayan her şey, adlandırılmış modda olduğu gibi bırakılır ya da sayısal modda kod noktasıyla kaçışlanır.

Modern bir sitede aksanlı harfleri kaçışlamak gerekir mi?

Hayır. Sayfa UTF-8 bildiriyorsa ve dosya UTF-8 olarak kaydedilmişse, é yalnızca é’dir. Adlandırılmış varlıklar, bir metni UTF-8 açısından temiz olmayan sistemlerden geçirmek içindir.

Bilmekte fayda var

  • Her şey tarayıcınızda gerçekleşir. Yapıştırdıklarınız yüklenmez, kaydedilmez ve saklanmaz.

Kaynaklar

Tüm Kod araçları