XSS korunması
htmlspecialchars() ve çıktı kaçışıyla XSS saldırısından korunmayı öğrenirsin.
XSS nedir?
XSS (cross-site scripting), saldırganın sayfaya JavaScript veya HTML enjekte etmesidir. Kullanıcıdan gelen veriyi echo ile kaçışlamadan yazdırırsan, kötü amaçlı <script> çalışır ve oturum çalıebilir.
Korunma: tarayıcıya giden tüm çıktıyı htmlspecialchars() ile kaçışla. Bu fonksiyon <, >, tırnaklar ve & işaretini HTML varlıklarına çevirir; tarayıcı bunları metin olarak gösterir, kod olarak çalıştırmaz.
ENT_QUOTES ve ENT_HTML5
Varsayılan olarak htmlspecialchars() yalnızca çift tırnağı kaçışlar. Tek tırnak da öznitelik değerlerinde tehlikeli olabilir. ENT_QUOTES bayrağı ile her iki tırnak tipini de dönüştürürsün.
ENT_HTML5 ise HTML5'e uygun varlıkları kullanır. Üçüncü argüman olarak "UTF-8" vermek encoding'i netleştirir. Modern projelerde her zaman ENT_QUOTES | ENT_HTML5 kullanmak en güvenli seçimdir.
Uygulama Kullanıcı girdisini güvenle yazdır
$userInput içinde kötü amaçlı bir script etiketi var. htmlspecialchars ile kaçışla; ikinci argüman ENT_QUOTES | ENT_HTML5, üçüncü argüman "UTF-8" olsun. Sonucu $safe'e ata ve echo ile yazdır.
Örnek çözümü göster
$safe = htmlspecialchars($userInput, ENT_QUOTES | ENT_HTML5, "UTF-8"); yaz. Sonra echo $safe . "\n"; ile yazdır.
Örnek çözüm:
<?php
$userInput = '<script>alert("xss")</script>';
$safe = htmlspecialchars($userInput, ENT_QUOTES | ENT_HTML5, "UTF-8");
echo $safe . "\n";
Kendini test et
-
htmlspecialchars çağrısını tamamla
$safe = ____($userInput, ENT_QUOTES | ENT_HTML5, "UTF-8");Cevabı göster
$safe = htmlspecialchars($userInput, ENT_QUOTES | ENT_HTML5, "UTF-8"); -
XSS kavramlarını eşleştir
- htmlspecialchars
- Özel karakterleri kaçışlar
- ENT_QUOTES
- Tek ve çift tırnak
- ENT_HTML5
- HTML5 karakter seti
- echo
- Çıktı verir
-
Hangisi hem tek hem çift tırnağı kaçışlar?
- htmlspecialchars($s)
- htmlspecialchars($s, ENT_COMPAT)
- htmlspecialchars($s, ENT_NOQUOTES)
- htmlspecialchars($s, ENT_QUOTES)
Cevabı göster
htmlspecialchars($s, ENT_QUOTES) — Doğru. ENT_QUOTES her iki tırnak tipini de dönüştürür.