Skip to content

Glossary

CSP

İçerik Güvenlik İlkesi

By Published Updated

CSP (İçerik Güvenlik İlkesi), sayfanın güvendiği içerik kaynaklarını tarayıcılara bildiren bir HTTP yanıt başlığıdır. İçerik türü başına beyaz liste tanımlar: JavaScript için script-src, CSS için style-src, görüntüler için img-src, fetch/XHR/WebSocket için connect-src, iframe'ler için frame-src vb.

Örnek başlık: Content-Security-Policy: default-src 'self'; script-src 'self' https://www.googletagmanager.com; img-src 'self' data: https:.

CSP'nin birincil değeri: XSS'e karşı derinlemesine savunma. Bir saldırgan sayfanıza JavaScript enjekte etmiş olsa bile, katı bir CSP tarayıcının bunu yürütmesini engeller (beyaz listede olmayan bir kaynaktan yüklendiğinden) veya herhangi bir yere veri göndermesini engeller (connect-src, saldırgan etki alanlarına sızdırmayı engeller).

Modern en iyi uygulama: nonce tabanlı CSP kullanın — her sayfa yanıtı CSP başlığına rastgele bir nonce ekler (ör. script-src 'nonce-AbC123') ve bu nonce ile eşleşen satır içi script etiketleri çalışabilir. Bu katı olmakla birlikte dinamik içeriği güvenli biçimde göndermenizi sağlar.

Amacı boşa çıkaran yaygın CSP hataları: script-src'de 'unsafe-inline' kullanmak (engellemeye çalıştığınız satır içi enjeksiyona yeniden izin verir), betik kaynağı olarak https:'yi joker yapmak (artık her HTTPS ana bilgisayarı kaynağınıza JS sunabilir) veya saldırganların saldırgan kontrollü JavaScript döndüren bir URL oluşturmasına izin veren JSONP destekli bir CDN ana bilgisayarına güvenmek. İlgili: XSS, CORS. Referans: W3C CSP Düzey 3.

Ölçülü örnek: strict-dynamic nasıl çalışır

Gerçek dünya katı ilkesi şuna benzer: Content-Security-Policy: script-src 'nonce-r4nd0m' 'strict-dynamic' https:; object-src 'none'; base-uri 'none'. Sunucu her yanıt için taze bir 128 bitlik nonce üretir (tipik olarak 22 base64url karakteri), eşleşen <script nonce="r4nd0m"> etiketlerine gömer ve başlığı yayımlar. strict-dynamic, güveni geçişli olarak yayar: nonce'lu komut dosyası tarafından yüklenen komut dosyaları, açık beyaz listeleme olmaksızın daha fazla komut dosyası yükleyebilir; ancak sayfa kaynağına enjekte edilen nonce'suz komut dosyaları engellenir. Google'ın CSP Değerlendiricisi, ilkeleri 0-10 ölçeğinde derecelendirir; 'unsafe-inline' içermeyen ve ana bilgisayar joker karakterleri içermeyen strict-dynamic ilkesi 9+ puan alır.

CSP'nin tarayıcı özellikleriyle etkileşimi

CSP yalnızca komut dosyası yürütmesini engellemez. connect-src, fetch, XHR, WebSocket, EventSource ve Beacon API'sini kısıtlar. frame-ancestors, clickjacking koruması için eski X-Frame-Options başlığının yerini alır. upgrade-insecure-requests, HTTP alt kaynak URL'lerini otomatik olarak HTTPS'ye yeniden yazar. Modern tarayıcılar, ihlal raporlarını JSON olarak report-to uç noktasına toplu göndererek Raporlama API'si aracılığıyla sunar. Referans: Google'ın "CSP Is Dead, Long Live CSP!" ACM CCS 2016 makalesi.

Frequently asked questions

CSP nedir?
CSP (İçerik Güvenlik İlkesi), tarayıcıya hangi komut dosyası, stil, görüntü ve diğer kaynak kaynaklarının güvenilir olduğunu söyleyen bir HTTP yanıt başlığıdır. Komut dosyası yürütmesini bilinen-güvenli kaynaklara kısıtlayarak XSS (siteler arası komut dosyası) saldırılarının etkisini dramatik ölçüde azaltır.
CSP pratikte nasıl kullanılır?
Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.example.com gibi katı bir ilke tüm satır içi komut dosyalarını ve cdn.example.com dışındaki harici komut dosyalarını engeller. Bir saldırgan <script src='evil.com'> enjekte ederse tarayıcı yüklemeyi reddeder.
CSP ile CORS arasındaki fark nedir?
CSP, mevcut sayfanın hangi kaynakları yükleyebileceğini kontrol eder — aynı sayfa kısıtlamasıdır. CORS, hangi harici sayfaların mevcut sitenin kaynaklarını getirebileceğini kontrol eder — çapraz kaynak kısıtlamasıdır. Bir sayfa her ikisine de sahip olabilir: CSP aldıklarını sınırlar, CORS kimden alınabileceğini sınırlar.
CSP yalnızca-raporlama modu nedir?
Content-Security-Policy-Report-Only aynı ilkeyi başlık olarak gönderir; ancak yalnızca ihlalleri engelleme yerine kaydeder. Ekiplerin uygulamaya geçmeden önce üretimde yeni bir CSP dağıtmasına ve ihlal raporları toplamasına izin verir.

Related

Published May 15, 2026 · Last reviewed May 31, 2026