CSP temelleri
Content Security Policy ile hangi kaynaklardan script çalışabileceğini sınırlamayı öğrenirsin.
CSP nedir?
Content Security Policy (CSP), tarayıcıya hangi kaynakların yüklenip çalıştırılabileceğini söyleyen bir güvenlik katmanıdır. Bir HTTP yanıtı başlığı veya meta etiketi ile ayarlanır.
CSP, XSS saldırılarının etkisini büyük ölçüde azaltır. default-src 'self' ilkesi yalnızca aynı kökenden gelen kaynaklara izin verir; satır içi script ve uzak kaynaklar varsayılan olarak engellenir.
Nonce ile seçici izin
Bir nonce, her istekte değişen rastgele bir sayıdır ve tek bir script etiketine izin verir. CSP başlığında script-src 'nonce-rastgele' yazılır; etiket de nonce özniteliğiyle aynı değeri taşımalıdır.
Böylece saldırganın enjekte ettiği script, doğru nonce'u bilemediği için çalışmaz. Nonce, satır içi script'lere seçici izin vermenin güvenli yoludur.
Uygulama Script'e nonce ekle
addNonce fonksiyonu yaz, parametre script ve nonce. script.nonce = nonce ile nonce değerini ata. Sonra document.head.appendChild(script) ile head'e ekle.
Örnek çözümü göster
Önce fonksiyonu tanımla, sonra script.nonce'a değeri ata, son olarak head'e ekle.
Örnek çözüm:
function addNonce(script, nonce) {
script.nonce = nonce;
document.head.appendChild(script);
}
Kendini test et
-
Hangi CSP direktifi yalnızca aynı kökenden script yüklemeye izin verir?
- script-src 'unsafe-inline'
- script-src 'self'
- script-src '*'
- default-src 'unsafe-eval'
Cevabı göster
script-src 'self' — Doğru! script-src 'self' yalnızca aynı kökenden script yüklemeye izin verir.
-
CSP ilkesini tamamla
const policy = "default-src ____";Cevabı göster
const policy = "default-src 'self'"; -
CSP direktiflerini eşleştir
- default-src
- genel varsayılan
- script-src
- script kaynakları
- style-src
- stil kaynakları
- img-src
- görsel kaynakları