İçerik Güvenliği Politikası (CSP), uygulamaların ve web sitelerinin güvenliğini artırmayı amaçlayan bir güvenlik standardıdır.
Web sitenize yüklenen içeriğe yeşil ışık yakmak veya engellemek için meta öğeler veya başlıklar kullanır. CSP (İçerik Güvenliği Politikası) ekstra bir koruma katmanı sağlar ve tüm web sitesi yöneticileri için yaygın olarak önerilir.
Bu makalede CSP'yi ve neden bu kadar önemli olduğunu keşfedin.
Bir İçerik Güvenliği Politikası (CSP) veya içerik güvenliği stratejisi, web sitelerinin güvenliğini artırmayı amaçlar.
Bunu yapmak için, Siteler Arası Komut Dosyası Çalıştırma (XSS) saldırıları ve kod enjeksiyonları dahil olmak üzere bir dizi saldırıyı algılar ve azaltır. Bu saldırılar genellikle kötü amaçlı yazılım dağıtmayı, site tahrifini veya veri hırsızlığını amaçlar.
CSP, ziyaret edilen siteye içerik yüklemeye yetkili kaynakları kullanıcıların tarayıcılarına belirtmek için web sunucusu tarafından döndürülen bir HTTP başlığıdır.
Örneğin, belirli yazı tiplerini gömmek için harici bir hizmet kullanıyorsanız, kullanıcıların tarayıcılarına hangi sunucuların şunları yapmasına izin verildiğini söyleyebilirsiniz:
CSP'nin ilk spesifikasyonu Şubat 2015'e dayanmaktadır. Daha sonra Aralık 2016'da güncellenmiştir ve gelişmeye devam etmektedir.
İçerik Güvenliği Politikası, çeşitli saldırılara karşı ikinci bir koruma katmanı ekler. Böylece hem kullanıcıyı hem de web sitesini aşağıdakiler için korur:
Bir İçerik Güvenliği Politikası (CSP) tanımlamanın temel faydası, XSS saldırılarını tespit etmek ve azaltmaktır.
Bu saldırılar, kötü niyetli betikleri çalıştırmaya zorlamak için web tarayıcısının sunucu tarafından sağlanan içeriğe olan güveninden yararlanır.
Enjekte edilen kötü amaçlı kod, tüm kullanıcı girişlerini alır:
Böylece saldırgan, kullanıcının verilerine erişir ve kimlik doğrulamasını atlar. Hatta hesabı tehlikeye atabilir ve kalıcı erişimi koruyabilir.
Bütün bunlar, kullanıcı hiçbir şeyden şüphelenmeden gerçekleşir.
Gerçek dünyada, XSS her yerde bulunur ve web uygulamalarındaki en yaygın kusurlardan biridir.
Bu tür güvenlik açığı, Google'ın Güvenlik Açığı Ödül Programı kapsamındaki ödemelerin %60'ından fazlasını oluşturur. Google, kötü amaçlı kod tespit ettiğinde sitenizi bloke ederek müşterilerinizin erişimini engeller.
Sıkı bir CSP ile sunucu yöneticileri, bir XSS kusurundan yararlanma olasılığını azaltabilir veya ortadan kaldırabilir.
Bunu yapmak için, komut dosyalarının yürütülmesi için istemci tarayıcılarının güvenmesi gereken İnternet etki alanlarını tanımlamaları gerekir.
Bu nedenle CSP ile uyumlu tarayıcılar, yalnızca tanımlanmış beyaz listede bulunan alanlardan gelen komut dosyalarını yürütür. Ancak, HTML olay işleme öznitelikleri dahil olmak üzere diğer tüm komut dosyalarını yok sayarlar.
Sunucular, güvenilir etki alanlarını kısıtlamanın yanı sıra hangi protokollerin kullanılacağını da belirleyebilir.
Örneğin, web uygulamalarının güvenliğini artırmak için içerik yüklemek için HTTPS kullanımını zorlayabilirler.
Eksiksiz bir İçerik Güvenliği Politikası, veri aktarımında HTTPS protokolünün uygulanmasını içerir. Ayrıca şunları içerir:
Ayrıca siteler, kullanıcıların tarayıcılarının siteye yalnızca TLS şifreli kanallar aracılığıyla bağlanmasını sağlamak için HTTPS Strict-Transport-Security başlıklarını kullanabilir.
Karmaşık web uygulamalarının büyük çoğunluğu, XSS'ye karşı yüksek bir güvenlik açığına sahiptir ve CSP kullanmaktan fayda sağlayacaktır.
Bir CSP'nin kullanılması özellikle aşağıdakiler gibi hassas verileri yöneten uygulamalar için önerilir:
Modern çerçevelerde (kapanış modelleri), CSP'nin kullanımı nispeten basittir ve ek güvenlik açısından önemli bir yatırım getirisi sağlar.
CSP, bilinen güvenlik açıkları olmayan güvenli uygulamalar için ek bir güvenlik mekanizmasıdır.
Ancak bazı durumlarda, bir içerik güvenliği politikası benimsemek en iyi seçenek olmayabilir. O halde güvenlik üzerinde daha büyük etkisi olan diğer çözümlere odaklanmak daha iyi olacaktır:
Statik uygulamalar – Tanımlama bilgileri veya oturum açma işlevi olmayan ve kendi etki alanlarında veya alt etki alanlarında barındırılan web uygulamalarının XSS'ye karşı düşük güvenlik açığı vardır.
Geçmişte XSS kurbanı olan veya kullandıkları çerçevelerde veya modellerde bilinen kusurları olan büyük uygulamalar. Bu durumlarda CSP tek başına yeterli koruma sağlamayacaktır. Bu nedenle en iyi çözüm, güvenlik açığı bulunan kodu düzeltmek veya yamalara yatırım yapmaktır.
Bir İçerik Güvenliği Politikası (CSP) ayarlamak, bir İçerik Güvenliği Politikası HTTP başlığı kullanmayı gerektirir. İşte bunu yapmak için üç adımlı bir prosedür:
İlk adım, izin verilecek veya kısıtlanacak kaynakları gösteren kaynak değerleri ile birlikte politikaları veya yönergeleri tanımlamaktır.
Siteniz için gerekli güvenilir etki alanı kaynaklarını dahil ettiğinizden emin olmak için CSP'nizi test edebilirsiniz.
Özellikle şunları yapabilirsiniz:
CSP kuralınızı uygulamak için iki ana yapılandırma vardır.
İlk, daha az popüler olan seçenek tüm tarayıcılarda çalışır. İkincisi ise HTTP yanıt başlığının tanımlanmasını gerektirir.
1 Meta Etiketler yapılandırması
HTML etiketini kullanarak sayfanın HTML kodunda CSP'nizi etkinleştirmeniz mümkündür.
2 CSP http yanıt başlığı yapılandırması
Bu, bir CSP'yi w3 ile uygulamanın en uygun yoludur; çoğu tarayıcıda çalışır.
Burada, Yalnızca Rapor öğesi olmadan İçerik-Güvenlik-Politikasını kullanacağız. Yanıt başlığınıza uygulanan kuralların çoğunun sunucunuzun yapılandırma dosyasında yer alacağını unutmayın.
Bunu yapmak için, web sitenizin üzerinde çalıştığı sunucuyu tanımlamanız ve yanıt başlığınızı ayarlamanız gerekir
IIS (İnternet Bilgi Servisleri)
İçerik güvenliği politikanızı doğrudan web.config dosyasına da ekleyebilirsiniz.