format_list_bulletedBu İçerikte Bahsedilen Konular
- arrow_rightWeb Sitenizin Güvenlik Skorunu Artırın: Content Security Policy (CSP)
- arrow_rightContent Security Policy (CSP) Nedir?
- arrow_rightCSP'nin Avantajları ve Güvenlik Skoruna Etkisi
- arrow_rightXSS Saldırılarına Karşı Koruma
- arrow_rightVeri Sızıntısının Önlenmesi
- arrow_rightCSP Yapılandırma Yöntemleri
- arrow_right1. HTTP Yanıt Başlığı ile Yapılandırma
- arrow_right2. Meta Etiketi ile Yapılandırma
- arrow_right3. Raporlama (Reporting) Yapılandırması
- arrow_rightCSP Direktifleri ve Kullanım Alanları
- arrow_rightdefault-src Direktifi
- arrow_rightscript-src Direktifi
- arrow_rightstyle-src Direktifi
- arrow_rightimg-src ve font-src Direktifleri
- arrow_rightconnect-src Direktifi
- arrow_rightframe-ancestors Direktifi
- arrow_rightCSP Yapılandırma Stratejileri
- arrow_rightGeçiş (Report-Only) Modu
- arrow_rightGüvenli Başlangıç Yapılandırması
- arrow_rightKademeli Geliştirme
- arrow_rightCSP ve SEO İlişkisi
- arrow_rightGüvenlik Skoru ve Arama Sıralaması
- arrow_rightKullanıcı Deneyimi Üzerindeki Etkisi
- arrow_rightCSP Test Araçları ve Hata Ayıklama
- arrow_rightTarayıcı Geliştirici Araçları
- arrow_rightÇevrimiçi CSP Analiz Araçları
Web Sitenizin Güvenlik Skorunu Artırın: Content Security Policy (CSP)
Content Security Policy (CSP), web uygulamalarını XSS (Cross-Site Scripting), veri sızıntıları ve clickjacking gibi yaygın güvenlik tehditlerinden korumak için tasarlanmış bir HTTP güvenlik başlığıdır. Modern web güvenliğinin temel taşlarından biri olan CSP, tarayıcılara hangi kaynakların yüklenebileceğini veya çalıştırılabileceğini belirleme imkanı sunar. Google'ın 2023 Güvenlik Raporu'na göre, CSP uygulayan web siteleri XSS saldırılarına %85 oranında daha az maruz kalmaktadır. Bu makalede, CSP'nin ne olduğunu, nasıl yapılandırılacağını ve web sitenizin güvenlik skorunu nasıl artırabileceğinizi detaylı olarak ele alacağız.
Sunucu güvenliği ve web uygulama koruması konusunda kapsamlı çözümler için sunucu güvenlik duvarı yapılandırma rehberimizi inceleyebilirsiniz.
Content Security Policy (CSP) Nedir?
CSP, web sunucusunun tarayıcıya gönderdiği bir HTTP yanıt başlığıdır ve tarayıcının sayfa içeriğini yükleme kurallarını tanımlamasını sağlar. OWASP'ın (Open Web Application Security Project) 2024 raporuna göre, web uygulamalarında en sık karşılaşılan güvenlik açıklarının başında XSS saldırıları gelmekte ve bu saldırılar tüm güvenlik ihlallerinin yaklaşık %65'ini oluşturmaktadır. CSP, bu saldırıları önleyerek hem kullanıcı verilerini hem de web sitenizin itibarını korur.
CSP'nin temel çalışma prensibi, beyaz liste (whitelist) yaklaşımıdır. Web siteniz, yalnızca güvendiği kaynaklardan içerik yüklenmesine izin verir ve diğer tüm kaynakları engeller. Bu yaklaşım, saldırganların kötü niyetli kod enjekte etmesini büyük ölçüde zorlaştırır. Modern tarayıcıların %95'inden fazlası CSP'yi desteklemektedir.
CSP'nin Avantajları ve Güvenlik Skoruna Etkisi
CSP uygulaması, web sitenizin güvenlik skorunu önemli ölçüde artırır. Google PageSpeed Insights ve benzeri araçlar, CSP kullanımını pozitif bir güvenlik sinyali olarak değerlendirir. Aşağıdaki tabloda CSP'nin sunduğu temel avantajları ve güvenlik skoruna etkilerini görebilirsiniz:
| Avantaj | Güvenlik Skoru Etkisi | Önlediği Tehditler |
|---|---|---|
| XSS Koruması | +25 puan | Reflected XSS, Stored XSS |
| Veri Sızıntısı Önleme | +15 puan | API verilerinin sızması |
| Clickjacking Koruması | +10 puan | iframe yerleştirme saldırıları |
| SSL/TLS Zorlama | +10 puan | Man-in-the-middle |
| Toplam Potansiyel Artış | +60 puan | Tüm tehditler |
XSS Saldırılarına Karşı Koruma
Content Security Policy, XSS saldırılarının en etkili önleyicisidir. CSP başlığı, tarayıcıya yalnızca belirli kaynaklardan JavaScript çalıştırmasına izin verir. Bir saldırgan, web sitenize kötü niyetli script kodu enjekte etmeye çalışsa bile, bu kod CSP tarafından engellenir. Mozilla'nın araştırmalarına göre, doğru yapılandırılmış bir CSP, XSS saldırılarının %94'ünü başarıyla engellemektedir.
Veri Sızıntısının Önlenmesi
CSP'nin fetch direktifi, web sitenizin hangi uç noktalardan (endpoint) veri çekebileceğini kontrol eder. Bu özellik, hassas bilgilerin yetkisiz üçüncü taraf sunucularına gönderilmesini önler. Özellikle e-ticaret siteleri ve finansal uygulamalar için PCI DSS uyumluluğu açısından CSP kritik bir rol oynar.
CSP Yapılandırma Yöntemleri
CSP'yi web sitenizde kullanıma sunmak için birkaç farklı yöntem bulunmaktadır. Hangi yöntemi seçerseniz seçin, yapılandırmanın doğru yapılması kritik öneme sahiptir.
1. HTTP Yanıt Başlığı ile Yapılandırma
En yaygın kullanılan yöntem, CSP'yi HTTP yanıt başlığı olarak sunucu tarafında yapılandırmaktır. Apache sunucusu için .htaccess dosyasına ekleyeceğiniz kod:
<IfModule mod_headers.c>
Header set Content-Security-Policy "default-src 'self'; script-src 'self' https://trusted.cdn.com; style-src 'self' 'unsafe-inline';"
</IfModule>
Nginx sunucusu için ise nginx.conf dosyasına eklemeniz gereken yapılandırma:
add_header Content-Security-Policy "default-src 'self'; img-src 'self' data: https:; font-src 'self';";
Sunucu yapılandırması hakkında detaylı bilgi için Plesk kurulum rehberimizi inceleyebilirsiniz.
2. Meta Etiketi ile Yapılandırma
HTML sayfalarında CSP kullanmak istiyorsanız, <meta> etiketini kullanabilirsiniz. Bu yöntem özellikle tek sayfa uygulamaları ve statik siteler için uygundur:
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline';">
Meta etiketi yönteminin bazı kısıtlamaları vardır; örneğin report-uri ve frame-ancestors direktifleri bu yöntemle çalışmaz.
3. Raporlama (Reporting) Yapılandırması
CSP ihlallerini izlemek için report-uri veya report-to direktifi kullanılmalıdır. Bu özellik, CSP politikalarınızın dışında kalan istekleri raporlar:
Content-Security-Policy: default-src 'self'; report-uri https://your-domain.com/csp-report
Bu raporlar, yapılandırmanızı optimize etmenize ve potansiyel güvenlik tehditlerini erken aşamada tespit etmenize yardımcı olur.
CSP Direktifleri ve Kullanım Alanları
CSP'nin etkili olabilmesi için doğru direktifi doğru kaynaklarla eşleştirmeniz gerekir. Aşağıda en yaygın kullanılan direktifier ve açıklamaları yer almaktadır:
default-src Direktifi
default-src, diğer direktifier için bir yedek (fallback) görevi görür. Belirli bir direktif tanımlanmadığında, tarayıcı default-src kurallarını uygular:
Content-Security-Policy: default-src 'self'
Bu politika, yalnızca aynı domain'den kaynak yüklenmesine izin verir ve diğer tüm kaynakları engeller.
script-src Direktifi
JavaScript kaynaklarını kontrol eden en kritik direktiftir. XSS saldırılarının büyük kısmı bu direktifi atlatmaya çalışır:
Content-Security-Policy: script-src 'self' https://trusted-analytics.com 'unsafe-inline' 'nonce-abc123'
'self' anahtar kelimesi aynı origin'i, https:// adresi belirli bir CDN'yi, 'unsafe-inline' satır içi scriptleri ve 'nonce' rastgele token ile scriptleri işaret eder.
style-src Direktifi
CSS stillerinin yüklenebileceği kaynakları belirler:
Content-Security-Policy: style-src 'self' 'unsafe-inline' https://fonts.googleapis.com
Birçok web sitesi 'unsafe-inline' kullanmak zorunda kalabilir, ancak mümkünse bu değer yerine nonce veya hash kullanılması önerilir.
img-src ve font-src Direktifleri
Görüntü ve yazı tipi kaynaklarını kontrol eder:
Content-Security-Policy: img-src 'self' data: https:; font-src 'self' https://fonts.gstatic.com
data: protokolü, Base64 kodlu görüntülerin doğrudan HTML içinde kullanılmasına olanak tanır.
connect-src Direktifi
AJAX istekleri, WebSocket bağlantıları ve fetch API çağrılarını kontrol eder:
Content-Security-Policy: connect-src 'self' https://api.yourdomain.com wss://chat.yourdomain.com
Bu direktifi doğru yapılandırmak, API güvenliği için kritik öneme sahiptir.
frame-ancestors Direktifi
Web sitenizin hangi sayfalarda iframe olarak gömülebileceğini belirler. Clickjacking koruması için X-Frame-Options'a alternatif olarak kullanılır:
Content-Security-Policy: frame-ancestors 'self' https://partner-site.com
CSP Yapılandırma Stratejileri
CSP'yi etkili bir şekilde uygulamak için aşamalı bir yaklaşım izlemeniz önerilir. Yanlış yapılandırılmış bir CSP, web sitenizin işlevselliğini bozabilir.
Geçiş (Report-Only) Modu
İlk aşamada, CSP'yi uygulamadan yalnızca raporlama modunda çalıştırabilirsiniz. Bu mod, kuralları ihlal eden istekleri engellemez, yalnızca raporlar:
Content-Security-Policy-Report-Only: default-src 'self'; report-uri https://your-domain.com/csp-report
Bu yaklaşım, üretim ortamına geçmeden önce tüm kaynak bağımlılıklarını belirlemenize olanak tanır. SSL/TLS yapılandırmanızı test etmek için SSL Labs test rehberimize göz atabilirsiniz.
Güvenli Başlangıç Yapılandırması
Güvenli bir başlangıç noktası olarak aşağıdaki temel yapılandırmayı kullanabilirsiniz:
Content-Security-Policy:
default-src 'self';
script-src 'self';
style-src 'self' 'unsafe-inline';
img-src 'self' data: https:;
font-src 'self';
connect-src 'self';
frame-ancestors 'none';
base-uri 'self';
form-action 'self';
frame-ancestors 'none'
Kademeli Geliştirme
Temel yapılandırmayı aktif ettikten sonra, ihtiyaçlarınıza göre kademeli olarak daha sıkı kurallar uygulayabilirsiniz. Örneğin, harici bir CDN kullanıyorsanız script-src direktifi buna göre güncellenmelidir:
script-src 'self' https://cdn.example.com 'nonce-{random}'
CSP ve SEO İlişkisi
Content Security Policy, doğrudan SEO performansınızı etkilemese de, dolaylı yollardan arama motoru sıralamalarınızı olumlu yönde etkiler. Google, güvenli web sitelerini tercih ettiğini açıkça belirtmiştir. SSL sertifikası olmayan sitelerde yaşanan SEO kayıpları konusunda detaylı bilgi için SSL sertifikası ve SEO ilişkisi makalemizi inceleyebilirsiniz.
Güvenlik Skoru ve Arama Sıralaması
Modern SEO araçları, web sitesi güvenlik skorunu sıralama faktörlerinden biri olarak değerlendirmektedir. Lighthouse, GTmetrix ve benzeri performans araçları CSP varlığını "Güvenlik" kategorisinde puanlandırır. Yüksek güvenlik skoru, kullanıcı güvenini artırır ve bu da hemen çıkma oranlarını düşürür.
Kullanıcı Deneyimi Üzerindeki Etkisi
Güvenli bir web sitesi, kullanıcıların sitenizde daha uzun süre kalmasını sağlar. Araştırmalara göre, güvenlik uyarısı gören kullanıcıların %85'i siteyi hemen terk etmektedir. CSP, bu tür uyarıların önüne geçerek kullanıcı deneyimini iyileştirir.
CSP Test Araçları ve Hata Ayıklama
CSP yapılandırmanızı test etmek için çeşitli araçlar mevcuttur. Doğru test araçları kullanmak, yapılandırma hatalarını erken aşamada tespit etmenizi sağlar.
Tarayıcı Geliştirici Araçları
Chrome ve Firefox'un geliştirici araçları, CSP ihlallerini Konsol sekmesinde görüntüler. Her ihlalde, hangi kaynağın engellendiği ve hangi direktife takıldığı detaylı olarak gösterilir.
Çevrimiçi CSP Analiz Araçları
CSP Evaluator ve CSP Inspector gibi çevrimiçi araçlar, politikanızın güçlü ve zayıf yönlerini analiz eder. Bu araçlar özellikle başlangıç aş