Tarayıcı bağlamına uygun güvenli çıktı işleme ve CSP katmanlarını öğrenin.
Bu teknoloji ve araç ne işe yarar?
Cross-Site Scripting, güvenilmeyen verinin tarayıcı tarafından çalıştırılabilir içerik olarak yorumlandığı durumlarda oluşur. HTML metni, öznitelik, JavaScript ve URL bağlamları farklı koruma yöntemleri ister.
Güvenli uygulama çerçevesi
Bu rehberde örnekler; size ait yerel makineler, izole sanal laboratuvarlar veya test yetkiniz olan sistemlerle sınırlıdır. İşlemlerin kapsamını yazılı tanımlayın, kişisel veri toplanmasını en aza indirin ve üretim değişikliklerinde geri dönüş planı hazırlayın.
Adım adım inceleme planı
- Şablonda hangi verinin HTML metin alanına, hangi verinin HTML özniteliğine yazıldığını ayırın.
- PHP htmlspecialchars işlevini doğru karakter seti ve ENT_QUOTES ile kullanın; JavaScript içine metin yerleştirirken JSON kodlamasını tercih edin.
- CSP ile güvenilir komut dosyası kaynaklarını sınırlayın; nonce veya hash tabanlı politikanın etkisini ölçün.
- İçerik editörlerinde izin listesine dayalı HTML temizleme kullanın ve tarayıcı testleriyle doğrulayın.
Kontrollü laboratuvar uygulaması
Yerel geliştirme sayfasında kullanıcı takma adını önce metin düğümü olarak, sonra güvenli HTML kodlamasıyla gösterin; ekranda yalnızca metin olarak yorumlandığını doğrulayın.
Çıktıları nasıl yorumlamalı?
- CSP, güvenli kodlamanın yerine geçmez.
- Rich text editörlerinin HTML temizleme stratejisi ayrıca test edilmelidir.
Sık yapılan hatalar
- Her bağlamda tek tür kaçış kullanmak
- innerHTML ile güvensiz veri yerleştirmek
- CSP ihlal raporlarını hiç incelememek
Örnek güvenlik senaryosu
Bir kullanıcı yorumunu HTML sayfasında yayınladığınızı düşünün. Sunucu girdiyi metin bağlamında güvenli biçimde kodlamalıdır; JavaScript veya URL bağlamında aynı yöntem her zaman yeterli değildir. Zengin içerik editörü kullanılıyorsa izin verilen HTML etiketleri sınırlandırılmalıdır. CSP son savunma katmanıdır; uygulamadaki güvensiz veri işleme düzeltilmeden koruma tamamlandı denemez.
Bulgu değerlendirme matrisi
Aşağıdaki tablo, bulgulara otomatik hüküm vermek yerine kontrol edilmesi gereken bağlamı açıklar.
| Gözlem | Olası anlam | Doğrulama |
|---|---|---|
| HTML metin bağlamı | Özel karakter kaçışı gerekli | htmlspecialchars kullanımını incele |
| JavaScript bağlamı | Farklı kodlama gerekli | JSON kodlama ve DOM API yaklaşımını kontrol et |
| HTML editörü | Güvensiz etiket işlenebilir | İzin listesi ve temizleyici testi yap |
Temel kavramlar
- XSS: tarayıcı bağlamına kod enjekte edilmesi
- Output encoding: güvenli çıktı kodlaması
- DOM: tarayıcı belge nesne modeli
Pratik çalışmanızın sonunda kapsam, delil ve doğrulama notlarını tek raporda toplayın. Siber Saldırı Akademisi, güvenlik araçlarının sorumlu kullanımı ve sürdürülebilir savunma için bu kayıt disiplinini önerir.
Kontrol listesi ve sonraki adım
- İzin ve kapsam belgesini, hedef sahiplerini ve çalışma saatini doğruladım.
- İnceleme öncesi ve sonrası sistem durumunu ve kanıtları kayıt altına aldım.
- Bulguları etki, olasılık ve bağlama göre değerlendirdim; yanlış pozitif kontrolü yaptım.
- Düzeltme sorumlusunu, yeniden test tarihini ve geri dönüş seçeneğini belirledim.
Resmî dokümantasyon ve kaynaklar
Üretici dokümantasyonu: XSS DEFENSE resmî kaynak. Kaynakların sürüm ve lisans koşullarını kullanımdan önce kontrol edin.
Bu makale Sibersaldiri.com için özgün hazırlanmıştır. Eğitim amacı taşır; tek başına güvenlik sertifikası veya tamamlanmış sızma testi yerine geçmez.
