Oluşturucular

İçerik Güvenliği Politikası (CSP) Oluşturucu

Bir Content Security Policy başlığını direktif direktif interaktif olarak oluşturun.

Content-Security-Policy Başlığı

İçerik Güvenliği Politikası (CSP) Oluşturucu Hakkında

Bir Content Security Policy başlığını etkileşimli olarak oluşturur — bir sayfa için hangi kaynakların betik, stil, görsel, yazı tipi ve diğer kaynak türlerini yüklemesine izin verildiğini seçerek ve doğru direktif sözdizimini otomatik olarak birleştirerek. CSP, XSS'e karşı en etkili savunmalardan biridir, ama aynı zamanda elle en kolay yanlış yapılan başlıklardan biridir; tek bir eksik direktif veya aşırı izin veren bir joker karakter, ya meşru sayfa işlevselliğini bozabilir ya da korumayı sessizce etkisiz hale getirebilir. Yeni bir politikayı zorunlu kılmadan önce Content-Security-Policy-Report-Only modunda test etmek, üretimde önce bozmadan neyin bozulacağını yakalamanın standart yoludur.

Bozulan bir sayfayı yeniden çalıştırmak için 'unsafe-inline' veya 'unsafe-eval' eklemek, CSP'nin sağladığı korumanın çoğunu geçersiz kılar — bir politikanın çalışması bunlardan birine ihtiyaç duyuyorsa, asıl düzeltilmesi gereken sayfanın kendi satır içi (inline) betikleri veya stilleridir.

📖 Bilgi Bankasında daha fazlasını oku →

Hızlı hazır ayarlar

İlgili Araçlar

Pratik bir başlangıç politikası

Her şeyi kendi alan adından yükleyen bir site için sıkı ve kullanılabilir bir temel:

default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; font-src 'self'; connect-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'

Üçüncü taraf kaynakları (analitik, CDN, yazı tipleri) yalnızca onlara ihtiyaç duyan yönergeye ekleyin.

En önemli yönergeler

YönergeNeden
default-srcAyarlamadığınız tüm yükleme yönergeleri için varsayılan değer.
script-srcXSS'e karşı ana savunma. 'unsafe-inline' kullanmaktan kaçının; gereken satır içi betikler için nonce veya hash kullanın.
object-src 'none'Eski eklenti içeriğini engeller.
base-uriEnjekte edilmiş bir <base> etiketinin göreli URL'leri yönlendirmesini önler.
frame-ancestorsSayfayı kimin çerçeve içine alabileceğini belirler (clickjacking). X-Frame-Options'ın modern karşılığı.
form-actionFormların nereye gönderilebileceğini sınırlar.

Siteyi bozmadan devreye almak

  1. Politikayı Content-Security-Policy-Report-Only başlığıyla gönderin. Tarayıcılar ihlalleri bildirir ama hiçbir şeyi engellemez.
  2. Önemli tüm sayfaları açın ve tarayıcı konsolunda ihlalleri kontrol edin.
  3. Eksik kaynakları ekleyin veya satır içi kodu dosyalara taşıyın. Kalması gereken satır içi betikler için her yanıtta yeni üretilen bir 'nonce-…' değeri kullanın.
  4. Politikayı uygulamak için başlığın adını Content-Security-Policy olarak değiştirin.

Başlık mı, meta etiketi mi

<meta http-equiv="Content-Security-Policy"> etiketi çoğu yönerge için çalışır, ancak frame-ancestors, report-uri ve sandbox orada yok sayılır. HTTP başlığını tercih edin. Bir sitenin gerçekte ne gönderdiğini güvenlik başlıkları denetleyicisi ile kontrol edin.