Online HTML Entity Kodlama ve Çözme

HTML'e rezerve edilmiş karakterleri (<, >) güvenli entity kodlarına çevirin. XSS koruması ve kod gösterimi için geliştirici aracı.

EN TR RU

Girdi

Metin/HTML

Çıktı

HTML Rezerve Karakterler ve XSS Tehdidi

Web tarayıcıları, `` (büyüktür) ve `&` (ampersand) gibi karakterleri metin olarak değil, HTML etiketlerinin başlangıcı veya bitişi olarak yorumlar. Eğer bir kullanıcı formuna veya yorum alanına bu karakterleri içeren bir metin girilirse ve sunucu tarafında temizlenmezse, tarayıcı bunu bir komut gibi çalıştırabilir. Bu durum, siber korsanların zararlı JavaScript kodlarını sitenize enjekte ettiği XSS (Cross-Site Scripting) saldırılarının temelidir. HTML Entity Encoder aracımız, bu "tehlikeli" karakterleri tarayıcının sadece görsel olarak göstereceği ama kod olarak çalıştırmayacağı güvenli karşılıklarına (Entity) dönüştürür. Örneğin, `` etiketi `<script>` haline gelir ve ekranda kod olarak görünür ancak çalışmaz.

Kod Bloklarını Ekranda Göstermek (Escaping)

Bir yazılım blogu yazıyorsanız veya teknik dokümantasyon hazırlıyorsanız, okuyucularınıza HTML kodlarını göstermeniz gerekir. Ancak kodunuzu doğrudan sayfaya yapıştırırsanız, tarayıcı o kodları işlemeye çalışır ve sayfa düzeniniz bozulur. Kodunuzu "Escape" etmek (kaçış dizilerine çevirmek) zorundasınız. Aracımız, kod bloklarınızı alır ve tüm rezerve karakterleri `&#` (nümerik) veya `&name;` (isimlendirilmiş) entity formatına çevirir. Bu sayede `` etiketini sayfanızda bir kutu olarak değil, `<div>` metni olarak gösterebilirsiniz.

Görünmez Karakterler ve Semboller

HTML sadece etiketlerden ibaret değildir; klavyede bulunmayan semboller (Telif hakkı ©, Euro €, Tırnak işaretleri “”) de özel kodlama gerektirir. Bazen veritabanından gelen metinlerde karakter kodlaması (Encoding) hataları nedeniyle bu semboller bozuk görünebilir. "Decode" özelliğimiz, `©` veya `©` gibi entity kodlarını alıp tekrar insan tarafından okunabilir (human-readable) orijinal sembollerine dönüştürür. Bu, özellikle bozuk içerikleri (mojibake) onarmak veya "scrape" edilmiş veriyi temizlemek için kullanışlıdır.

FAQ
İkisi de aynı karakteri temsil eder. Named Entity (örn: `&nbsp;`) insanların hatırlaması kolaydır ancak tüm tarayıcılar her ismi desteklemeyebilir. Numeric Entity (örn: `&#160;`) ise evrenseldir ve tüm tarayıcılarda çalışır.
Hayır. HTML Entity Encode işlemi sadece "Output Encoding" (tarayıcı çıktısı) içindir ve XSS'i önler. SQL Injection için veritabanı sorgularında "Prepared Statements" kullanmalısınız.
Modern siteler UTF-8 (charset=utf-8) kullandığı için Türkçe karakterleri encode etmeye gerek yoktur. Ancak UTF-8 desteklemeyen eski sistemlerde (ISO-8859-9) bu karakterler de entity olarak (örn: `&uuml;`) yazılmalıdır.
JavaScript'te doğrudan entity çözme fonksiyonu yoktur. Genellikle geçici bir DOM elementi oluşturulup `innerHTML` özelliğine entity verilir, sonra `textContent` ile çözülmüş hali alınır. Aracımız bu işlemi otomatik yapar.
Evet. HTML öznitelikleri (attributes) içinde kırılmayı önlemek için tırnak işaretleri de `&quot;` ve `&apos;` olarak kodlanır. Bu, güvenli HTML çıktısı için standart bir prosedürdür.