Nginx Content-Security-Policy (CSP) başlığı nasıl ayarlanır? (XSS saldırılarına karşı)

Nedir Content Security Policy (CSP)?

Content Security Policy (CSP), web uygulamalarında belirli kaynakların yüklenmesini kontrol eden bir güvenlik mekanizmasıdır. CSP, web sayfalarının yüklenmesine izin verilen kaynakları tanımlamak için tarayıcıda kullanılan bir HTTP yanıt başlığıdır. Bu başlık, XSS (Cross-Site Scripting) gibi saldırılara karşı bir savunma katmanı sağlar. CSP, yalnızca güvenilir kaynaklardan gelen içeriklerin yüklenmesine izin vererek potansiyel zararın en aza indirilmesine yardımcı olur.

Nginx ile CSP Başlığının Tanımlanması

Nginx, yüksek performanslı bir web sunucusu olarak yaygın bir şekilde kullanılmaktadır. CSP başlığı, Nginx yapılandırma dosyası aracılığıyla ayarlanabilir. Yapılandırma dosyası genellikle “/etc/nginx/nginx.conf” veya belirli bir sanal ana bilgisayar (virtual host) yapılandırma dosyasında bulunur. CSP başlığını ayarlamak için “add_header” direktifi kullanılmaktadır. Bu başlık, her HTTP yanıtında belirtilecektir.

Temel CSP Başlığı Örneği

CSP başlığı, belirli direktifler ve kaynak tanımlayıcıları içerir. Basit bir CSP başlığı aşağıdaki şekilde tanımlanabilir:

“`
add_header Content-Security-Policy “default-src ‘self’; img-src ‘self’ data:; script-src ‘self’; style-src ‘self’ ‘unsafe-inline’;”;
“`

Bu başlık, kaynakların yüklenmesini sınırlı bir şekilde kontrol etmektedir. “default-src ‘self'” ifadesi, yalnızca aynı alan adından kaynaklanan içeriklere izin verir. “img-src ‘self’ data:;” ifadesi, görüntülerin yalnızca kendi alanından veya veri URI üzerinden yüklenmesine izin verir. “script-src ‘self'” ise yalnızca kendi alanından JavaScript’in yüklenmesine izin verir. “style-src ‘self’ ‘unsafe-inline'” bildirimi, stil dosyalarının yanı sıra inline stiller için de izin vermektedir, ancak inline stil kullanımı genellikle tavsiye edilmemektedir.

Daha Kapsamlı CSP Ayarları

CSP’nin daha kapsamlı bir versiyonu, daha fazla direktif ve kaynak tanımlayıcısı içerir. Örneğin, aşağıdaki gibi bir başlık yapılandırması yapılabilir:

“`
add_header Content-Security-Policy “default-src ‘self’; img-src ‘self’ data: https://trusted-image-host.com; script-src ‘self’ https://trusted-script-host.com; style-src ‘self’ ‘unsafe-inline’ https://trusted-style-host.com; frame-ancestors ‘self’;”;
“`

Bu başlık, belirli bir alan adı üzerinden belirli kaynakların yüklenmesine izin verir. CSP başlığının “frame-ancestors” direktifi kullanılarak, sayfanın hangi kaynaklar içerisinde iframe olarak yüklenebileceği kontrol edilebilir.

CSP Uygulamalarında Kullanılabilecek Direktifler

CSP başlığı tanımlanırken kullanılabilecek bazı yaygın direktifler şunlardır:

– default-src: Varsayılan kaynak politikasıdır. Diğer direktiflerde belirtilmemiş olan kaynakların yüklenmesine ilişkin politikayı belirler.
– script-src: JavaScript kaynaklarının yüklenmesine dair kısıtlamaları belirler.
– style-src: CSS kaynaklarının yüklenmesine dair kısıtlamaları belirler.
– img-src: Gönderilen görüntülerin yüklenmesine dair kısıtlamaları belirler.
– connect-src: AJAX isteklerinin gönderileceği kaynakları tanımlar.
– frame-src: iframe kaynaklarının yüklenmesine dair kısıtlamaları belirler.
– object-src: Flash veya diğer uygulama nesnelerinin yüklenmesine dair kısıtlamaları belirler.
– media-src: Ses ve video medyalarının yüklenmesine dair kısıtlamaları belirler.
– manifest-src: Uygulama mantığı manifest dosyalarının yüklenmesine dair kısıtlamaları belirler.

CSP’nin Güvenlik Avantajları

CSP’nin uygulanması, XSS saldırılarına karşı önemli bir koruma sağlar. Her ne kadar CSP tüm saldırıları engellemese de, birçok güvenlik açığını en aza indirmeye yardımcı olur. Özellikle, bilinen kötü amaçlı scriptlerin yüklenmesini engelleyerek, zararlı içeriklerin kullanıcıların tarayıcılarına ulaşmasını önler. CSP uygulaması sırasında dikkat edilmesi gereken noktalardan biri, web uygulamasının işlevselliğinin kısıtlamamız gerektiğidir. Bu nedenle test edilmeli ve optimize edilmelidir.

CSP’nin İzlenmesi ve Güncellenmesi

CSP politikasının etkin bir şekilde işlediğinden emin olmak için, politika sürekli izlenmeli ve gerektiğinde güncellenmelidir. Tarayıcılar, belirtilen CSP politikalarına uymayan içerikler ile ilgili bildirimlerde bulunabilirler. CSP hata raporlama (Reporting) mekanizması, kullanıcıların sorunları anlamalarına ve bunları düzeltmelerine yardımcı olabilir. CSP başlığına “report-uri” veya “report-to” ekleyerek, istenmeyen içerik yüklemeleri hakkında bilgilendirme yapılabilir.

Sonuç

Nginx üzerinde Content Security Policy (CSP) başlığının doğru bir şekilde ayarlanması, web uygulamalarının güvenliğini artırmak konusunda kritik bir rol oynar. XSS saldırılarına karşı sağlam bir koruma katmanı sağlarken, kaynakların daha kontrollü bir şekilde yüklenmesine olanak tanır. Ancak, politika oluşturulurken dikkatli olunmalı ve uygulama test edilmelidir. CSP, web güvenliği stratejisinin önemli bir parçası olarak değerlendirilmelidir.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

SON İÇERİKLER

İLGİNİZİ ÇEKEBİLİR