HTML Kodlama
Karakterleri doğrudan metin olarak görünmeleri için HTML varlıklarına dönüştür.
Web sayfanda bir etiketin çalışmasını değil de örneğin <div> ifadesinin doğrudan okunmasını istiyorsan bu karakterleri kaçırman gerekir. HTML kodlama işlemi, yapısal komut bildiren işaretleri tarayıcının ekranda salt metin olarak basacağı özel varlıklara çevirir.
HTML Kodlama İçin Kritik Beş Karakter
HTML yapısında < ve > işaretleri etiket sınırlarını belirler, & karakteri yeni bir varlık başlatır ve tırnak işaretleri nitelik değerlerini çevreler. Bu beş temel karakteri dönüştürdüğünde görüntüleme sorunlarının neredeyse tamamı çözülür.
Genellikle gözden kaçan işaret & karakteridir. Dönüştürme sırasında ilk sıraya bu işaret alınmalıdır. Aksi halde önce büyüktür veya küçüktür işaretleri dönüştürülürse, hemen ardından oluşan yeni varlıkların başındaki ampersand simgeleri de yeniden kodlanır ve sayfada bozuk bir şekilde &lt; çıktısı oluşur. Sıralama bu yüzden belirleyicidir.
HTML Kodlama Aracını Kullanma Adımları
- Ekranda doğrudan metin olarak göstermek istediğin içeriği veya işaretleme kodunu alana yapıştır.
- Dönüştürme butonuna tıkla.
- Oluşturulan HTML varlık kodlarını kopyala.
- Elde ettiğin çıktıyı web sayfana, şablon dosyana veya içerik yönetim sistemindeki ilgili alana ekle.
- Sayfayı açarak içeriğin bir etiket gibi çalışmak yerine düzgün bir yazı olarak görüntülendiğini doğrula.
Temel HTML Kodlama Varlıkları
| Karakter | Varlık | Diğer Geçerli Biçim |
|---|---|---|
| & | & | & |
| < | < | < |
| > | > | > |
| " | " | " |
| ' | ' | ' |
| non-breaking space | |   |
HTML Kodlama ve Güvenlik Sınırları
Çıktıları kaçırmak, siteler arası betik çalıştırma (XSS) açıklarına karşı vazgeçilmez bir savunma adımıdır. Ancak bu işlemin doğru aşamada, yani veri sayfaya basıldığı anda ve bulunduğu bağlama uygun kurallarla yapılması şarttır.
Normal bir HTML metni için uygulanan kurallar; bir etiket niteliği, JavaScript bloğu veya URL adresi içerisine yazılacak değerler için geçerli kurallardan farklıdır. Bir alanda tamamen güvenli sayılan bir metin, başka bir bağlamda güvenlik açığı oluşturabilir. Bu sebeple veritabanına kaydederken körü körüne dönüştürmek yerine, kullandığın yazılım çatısının bağlama duyarlı kaçırma mekanizmalarından yararlanmalısın.
HTML Kodlama Hakkında Sıkça Sorulanlar
HTML kodlama tam olarak ne anlama gelir?
HTML yapısında özel bir işlevi bulunan sembollerin entity yani varlık karşılıklarıyla değiştirilmesidir. Bu sayede tarayıcı metni bir işaretleme kodu gibi çalıştırmaz, yalnızca ekranda yazı olarak gösterir.
İlk önce hangi karakterlerin dönüştürülmesi zorunludur?
En başta ve/veya işareti olmak üzere küçüktür, büyüktür ve her iki tırnak işareti kesinlikle dönüştürülmelidir. Ampersand sembolü ilk başta ele alınmazsa diğer varlıklar çift kodlama hatasına uğrayabilir.
Bu dönüştürme işlemi tek başına XSS saldırılarını engeller mi?
Önemli bir savunma hattıdır ancak yalnızca çıktı verilme anında ve yer aldığı bağlama uygun kurallarla çalıştırıldığında işe yarar. Normal metin blokları, öznitelikler, JavaScript veya URL alanları ayrı kaçırma kuralları gerektirir.
ifadesinin normal boşluktan farkı nedir?
Bölünemez boşluk simgesi ilgili noktada satırın kırılmasını önler ve yanındaki diğer boşluklarla birleştirilip tek boşluğa düşürülmez. Genellikle bir sayı ile birim arasına yerleştirilir; fazlası metin akışını bozabilir.
Verileri kaydederken mi yoksa ekrana basarken mi kodlamalıyım?
Ekrana basarken kodlamalısın. Ham veriyi olduğu gibi veritabanında saklayıp yalnızca çıktı aşamasında kaçırma uygularsan aynı bilgiyi JSON, e-posta veya CSV gibi farklı alanlarda bozulmadan rahatça kullanabilirsin.