İçeriğe atla
FerdiGidenby FerdiSoftBETA v2.4
Güvenlik

XSS Saldırılarına Karşı Çıktı Kaçışlama

XSS Saldırılarına Karşı Çıktı Kaçışlama, Güvenlik alanında sıkça karşılaşılan ve doğru uygulandığında fark yaratan konulardan biri. Bu yazı konuyu 5 temel noktada ele alıyor, çalışan bir PHP örneği üzerinden ilerliyor, sonunda da uygulamada nelere dikkat edilmesi gerektiğini özetliyor.

Ferdi GidenFerdi Giden 2 dk okuma 7
XSS Saldırılarına Karşı Çıktı Kaçışlama
İçindekiler
  1. XSS Saldırılarına Karşı Çıktı Kaçışlama nedir, neden önemlidir?
  2. Öne çıkan noktalar
  3. Örnek kod
  4. Size ne kazandırır?
  5. Özetle

XSS Saldırılarına Karşı Çıktı Kaçışlama, Güvenlik alanında sıkça karşılaşılan ve doğru uygulandığında fark yaratan konulardan biri. Bu yazı konuyu 5 temel noktada ele alıyor, çalışan bir PHP örneği üzerinden ilerliyor, sonunda da uygulamada nelere dikkat edilmesi gerektiğini özetliyor.

XSS Saldırılarına Karşı Çıktı Kaçışlama nedir, neden önemlidir?

Siteler arası betik çalıştırma (XSS), kullanıcıdan gelen bir metnin sayfaya kaçışlanmadan basılmasıyla oluşur: yorum alanına yazılan bir betik, sayfayı açan herkesin tarayıcısında çalışır ve oturum bilgilerini çalabilir. Çözüm basittir ama her çıktı noktasında uygulanmalıdır.

Öne çıkan noktalar

  • Çıktıda kaçışla: Veriyi kaydederken değil, ekrana basarken bağlama uygun biçimde kaçışlayın.
  • ENT_QUOTES: Öznitelik içinde kullanılan değerlerde tek ve çift tırnak da kaçışlanmalıdır.
  • JavaScript bağlamı: Betik içine veri aktarırken json_encode ve JSON_HEX_* seçeneklerini kullanın.
  • Bağlantılar: Kullanıcıdan gelen adreslerde yalnızca http ve https protokolüne izin verin; javascript: adreslerini reddedin.
  • CSP: Content-Security-Policy başlığı, gözden kaçan bir açığın etkisini sınırlar.

Örnek kod

Teoriyi somutlaştırmak için kısa bir PHP örneğine bakalım:

function e(?string $metin): string
{
    return htmlspecialchars((string)$metin, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
}
?>
<h2><?= e($yorum['baslik']) ?></h2>
<p><?= nl2br(e($yorum['metin'])) ?></p>
<a href="<?= e($profilUrl) ?>">Profil</a>
<script>
  const kullanici = <?= json_encode($ad, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT) ?>;
</script>

Örnek bilinçli olarak kısa tutuldu; gerçek projede hata yönetimi ve günlükleme gibi katmanlar eklenmelidir.

Kullanıcıdan gelen veriyi ekrana basarken htmlspecialchars() ile kaçışlamak XSS saldırılarının önüne geçer.

Size ne kazandırır?

Kısaca özetlemek gerekirse:

  • Saldırı yüzeyini daraltır ve olası veri sızıntılarının önüne geçer
  • Güvenlik denetimlerinden daha kolay geçen bir kod tabanı sağlar
  • Hataların canlı ortama çıkmadan fark edilmesine yardım eder
  • Kullanıcı güvenini ve marka itibarını korur

Özetle

XSS Saldırılarına Karşı Çıktı Kaçışlama konusunda ele aldığımız 5 nokta, günlük çalışmada en sık ihtiyaç duyulan kısmı kapsıyor. Özellikle Çıktıda kaçışla ve CSP başlıklarını uygulamaya geçirmek iyi bir başlangıç olur.

İlgili içerikler:

Daha fazla uygulamalı içerik için Akademi derslerine ve blog yazılarına göz atabilirsiniz.

Paylaş:
Ferdi Giden

Yazar

Ferdi Giden @admin
Sistem YöneticisiDoğrulanmış GeliştiriciBeta KullanıcıFerdiSoft KatılımcısıDoğrulanmış ProfilGüvenlik Bilinci

PHP, MySQL ve Tailwind ile kurumsal yazılımlar geliştiriyor; FerdiSoft çatısı altında ERP, WMS ve SaaS çözümleri üretiyor.

Yorumlar 0

Yorum yapmak ve tartışmaya katılmak için giriş yapın. Rozetleriniz yorumlarınızda görünür.

Henüz yorum yok. İlk yorumu siz yazın!

Ücretsiz Teklif Al