SSL Sertifikası

Content Security Policy (CSP) Rehberi

CSP, tarayıcıya hangi kaynaklardan script, stil ve görsel yükleyebileceğini söyleyen bir HTTP başlığıdır; XSS saldırılarının etkisini ciddi ölçüde azaltır.

Content Security Policy, sunucunun tarayıcıya "bu sayfa yalnızca şu kaynaklardan içerik yükleyebilir" dediği bir HTTP yanıt başlığıdır. Saldırgan sayfaya script enjekte etse bile, politika izin vermiyorsa tarayıcı onu çalıştırmaz. CSP, girdi doğrulama ve çıktı kodlamanın yerine değil, onlara ek bir savunma katmanı olarak düşünülmelidir.

Temel yönergeler

  • default-src: Belirtilmeyen tüm kaynak türleri için varsayılan.
  • script-src ve style-src: JavaScript ve CSS kaynakları.
  • img-src, font-src, connect-src: Görsel, yazı tipi ve XHR/fetch hedefleri.
  • frame-ancestors: Sayfanızı hangi sitelerin iframe içine alabileceği.
  • upgrade-insecure-requests: http:// kaynak isteklerini https:// olarak yükseltir.

Adım adım uygulama

  1. Önce Content-Security-Policy-Report-Only başlığıyla yayına alın; ihlaller engellenmez, yalnızca raporlanır.
  2. Tarayıcı konsolundaki ihlal mesajlarından gerçekten kullandığınız kaynakları çıkarın.
  3. Satır içi script yerine harici dosya veya nonce/hash kullanın; mümkünse 'unsafe-inline' ve 'unsafe-eval' kullanmayın.
  4. Politika temiz çalıştığında başlığı Content-Security-Policy olarak değiştirin.

Örnek bir Nginx yapılandırması:

add_header Content-Security-Policy "default-src 'self'; script-src 'self'; img-src 'self' data:; frame-ancestors 'self'; upgrade-insecure-requests" always;

Apache için karşılığı:

Header always set Content-Security-Policy "default-src 'self'; frame-ancestors 'self'"

Sık yapılan hatalar

  • Politikayı doğrudan zorlayıp üçüncü taraf widget'ları (analitik, ödeme, sohbet) kırmak.
  • script-src * gibi geniş joker kullanarak korumayı etkisiz bırakmak.
  • Nonce değerini her istekte değiştirmeyip sabit bırakmak.

Raporlama ile izleme

Politikaya report-uri veya report-to ile bir rapor adresi ekleyerek ihlalleri toplayabilirsiniz. Raporlar hangi sayfanın hangi kaynağı yüklemeye çalıştığını gösterir; gürültülü tarayıcı eklentisi kaynaklı kayıtları elemek için birkaç gün veri biriktirip değerlendirin. Politikayı sıkılaştırırken her değişikliği önce Report-Only modunda deneyin. Nonce kullanıyorsanız değerin her yanıtta rastgele üretildiğinden ve sayfadaki script etiketleriyle eşleştiğinden emin olun.

CSP'nin HTTPS ile birlikte değeri artar: geçerli bir SSL sertifikası taşıma katmanını, CSP ise tarayıcı içindeki içerik yüklemesini korur. Kurulumunuzu SSL denetleyici ile kontrol edebilirsiniz. Özetle: raporlama modunda başlayın, kaynakları tek tek belirleyin ve politikayı kademeli olarak sıkılaştırın.

Bu makale faydalı oldu mu?

Makale Ara

Güvenlik & En İyi Uygulamalar

Yardıma mı İhtiyacınız Var?

Aradığınızı bulamadıysanız destek ekibimiz size yardımcı olabilir.

Destek Talebi Aç