Content Security Policy (CSP) nedir ve nasıl yapılandırılır?
Cevap
CSP, tarayıcıya sayfanın hangi kaynaklardan script, stil, görsel vb. yükleyebileceğini söyleyen bir HTTP yanıt başlığıdır. XSS'e karşı ikinci savunma hattıdır: saldırgan bir script enjekte etse bile tarayıcı onu çalıştırmaz.
Content-Security-Policy:
default-src 'self';
script-src 'self' 'nonce-r4nd0m123';
style-src 'self';
img-src 'self' data: https://cdn.example.com;
connect-src 'self' https://api.example.com;
frame-ancestors 'none';
object-src 'none';
base-uri 'self'Önemli direktifler
default-src: diğerleri tanımlı değilse varsayılan.script-src: en kritik olanı.'unsafe-inline've'unsafe-eval'kullanmak CSP'nin faydasını büyük ölçüde yok eder.connect-src:fetch/WebSocket hedefleri.frame-ancestors: sayfanın iframe içine alınmasını engeller (clickjacking).
Nonce ve strict-dynamic
Inline script gerekiyorsa her yanıtta rastgele bir nonce üretilir ve yalnızca o nonce'u taşıyan script çalışır:
<script nonce="r4nd0m123">initApp();</script>'strict-dynamic' ile güvenilen script'in yüklediği script'lere de izin verilir; uzun domain listeleri yerine önerilen modern yaklaşımdır.
Kademeli geçiş
Mevcut uygulamada önce Content-Security-Policy-Report-Only ile ihlaller toplanır (report-to), kırılan yerler düzeltilir, sonra zorunlu moda geçilir.
İlgili Web Güvenliği soruları
- CORS nedir? Neden CORS hatası alırız?
- XSS ve CSRF saldırıları nedir, nasıl korunulur?
- Authentication ile authorization arasındaki fark nedir?
- Güvenli cookie ayarları nelerdir? Session hijacking nasıl önlenir?
- OWASP Top 10 nedir? En önemli maddelerini özetleyin.
- Parolalar veritabanında nasıl saklanmalıdır? bcrypt ve Argon2 neden tercih edilir?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.