Web uygulamaları ve siteleri, sürekli olarak çeşitlenen ve evrilen siber tehditlerle karşı karşıya. Bu tehditlerin başında gelen “Cross-site Scripting” (XSS) saldırıları, saldırganların web sayfalarına kötü amaçlı kod eklemelerini sağlar. CSP (Content Security Policy), bu ve benzeri siber tehditlere karşı etkili bir kalkan oluşturur.

CSP Nasıl Çalışır?

CSP’nin nasıl çalıştığını anlamak için temel bileşenlere ve işleyişine daha yakından bakalım:

1. Tanım:

CSP, bir web sunucusunun tarayıcılara gönderdiği bir HTTP yanıt başlığıdır (Content-Security-Policy). Bu başlık, sayfanın hangi içerikleri nereden yükleyebileceğini (örn. scriptler, stiller, resimler vb.) belirtir.

2. Direktifler:

CSP başlığında bir dizi “direktif” tanımlanabilir. Her direktif, belirli bir tür içeriği (örneğin, resimler, stil sayfaları veya JavaScript) nereden yüklenebileceğini belirtir. Örneğin, script-src direktifi yalnızca belirli kaynaklardan script yüklemeye izin verir.

3. Kaynak Tanımları:

Her direktif, hangi kaynaklardan içerik yüklemesine izin verildiğini belirtmek için belirli bir kaynak listesi içerir. Örneğin, script-src: ‘self’ https://example.com; direktifi yalnızca mevcut domainden (self) ve https://example.com adresinden scriptlerin yüklenmesine izin verir.

4. Kısıtlamalar ve Engelleme:

Bir tarayıcı, CSP başlığını aldığında, bu politika kurallarına göre içerik yüklemeye çalışır. Eğer bir içerik, tanımlanan politikaya uymazsa, tarayıcı bu içeriği engeller ve genellikle konsolunda bir hata mesajı görüntüler.

5. Raporlama:

CSP, ihlallerin raporlanmasına da olanak tanır. Bu, web geliştiricilerinin potansiyel güvenlik ihlallerini takip etmelerine ve politikalarını ayarlamalarına yardımcı olur. report-uri veya report-to direktifleri kullanılarak ihlallerin nereye raporlanacağı belirlenir.

Örnek CSP Başlığı:

Content-Security-Policy: default-src ‘self’; img-src *; script-src https://example.com

Bu politika şunları belirtir:

  • Varsayılan olarak, tüm içerik sadece aynı kaynaktan (‘self’) yüklenebilir.
  • Resimler herhangi bir kaynaktan yüklenebilir (*).
  • JavaScript scriptleri sadece https://example.com adresinden yüklenebilir.

CSP, web sayfasının yüklediği içeriği kontrol altında tutarak potansiyel güvenlik tehditlerine karşı ek bir koruma sağlar. Ancak doğru bir şekilde uygulanması için detaylı bir planlama ve test süreci gerektirir.

CSP ve SEO İlişkisi Nedir?

CSP (Content Security Policy) doğrudan SEO (Arama Motoru Optimizasyonu) ile ilişkilendirilmez, fakat dolaylı yollarla SEO üzerinde bazı etkilere sahip olabilir. Bu etkiler genellikle yanlış veya aşırı kısıtlayıcı bir CSP politikasının sonucudur. CSP’nin SEO’yu etkileyebileceği bazı senaryoları düşünecek olursak:

Kaynakların Engellenmesi: Eğer CSP, web siteniz için gerekli olan bazı scriptleri, stil dosyalarını veya diğer kaynakları yanlışlıkla engellerse, bu sitenizin düzgün görüntülenmesini veya çalışmasını engelleyebilir. Arama motorları, hatalı veya bozuk gözüken siteleri olumsuz olarak değerlendirir, bu da sıralamanızı olumsuz etkileyebilir.

Sayfa Yükleme Hızı: Eğer bir CSP, yüklenmesi gereken bazı kaynakları engelliyorsa, bu sayfa yükleme hızınızı olumlu veya olumsuz etkileyebilir. Ancak, genellikle, gerekli kaynakların engellenmesi kullanıcı deneyimini olumsuz etkiler ve bu da SEO’yu dolaylı yoldan etkileyebilir.

Üçüncü Taraf SEO Araçları: Bazı SEO araçları ve eklentileri, sitenizin performansını izlemek veya iyileştirmek için harici scriptler kullanır. Eğer CSP bu scriptleri engellerse, bu araçların doğru bir şekilde çalışmasını engelleyebilir.

Google AMP: Eğer bir site Google’ın AMP (Accelerated Mobile Pages) formatını kullanıyorsa, bu sayfalar için ayrı bir CSP politikası olması gerekebilir. Yanlış yapılandırılmış bir CSP, AMP sayfalarının doğru bir şekilde çalışmasını engelleyebilir, bu da SEO sıralamalarını olumsuz etkileyebilir.

Güvenlik ve Güvenirlik: CSP’nin temel amacı, web sitenizi potansiyel tehditlere karşı korumaktır. Güvenli bir web sitesi, kullanıcıların güvenini kazanmada kritik bir faktördür. Bu doğrudan SEO’yu etkilemese de, kullanıcı deneyimi ve güvenilirliği üzerinde olumlu bir etkiye sahip olabilir.

CSP’nin doğrudan SEO’ya önemli bir etkisi olmamakla birlikte, yanlış veya eksik yapılandırılmış bir CSP politikasının sitenin performansı ve kullanıcı deneyimi üzerinde olumsuz etkileri olabilir. Bu da dolaylı olarak SEO sıralamalarınızı etkileyebilir. Bu nedenle, CSP politikalarınızı planlamak ve test etmek önemlidir.

CSP’nin Öne Çıkan Faydaları

Aktif XSS Koruması

XSS, “Cross-Site Scripting” saldırılarını ifade eder. Bu saldırı türü, saldırganların web uygulamalarına kötü amaçlı scriptler enjekte ederek kullanıcıların tarayıcılarında bu scriptleri çalıştırmalarını sağlar. Bu, saldırganın kullanıcıların oturum bilgilerini ele geçirmesine, site içeriğini değiştirmesine veya kullanıcının tarayıcısını başka kötü amaçlı sitelere yönlendirmesine neden olabilir. CSP, XSS saldırılarını etkin bir şekilde engelleyerek web sitesi ve kullanıcıları korur.

İçerik Kontrolü

Hangi kaynaklardan hangi içeriklerin yükleneceğine dair detaylı kontrol sağlar.

Ekstra Güvenlik Katmanı

Diğer güvenlik protokolleriyle birlikte kullanıldığında, web uygulamaları için ekstra bir güvenlik katmanı oluşturur.

CSP Uygularken Dikkat Edilmesi Gereken Hususlar

Politika Dengelemesi

CSP (Content Security Policy) politika dengelemesi, bir web sitesi veya uygulamasının güvenliğini sağlamakla birlikte, kullanıcı deneyimini veya web uygulamasının işlevselliğini bozmamanın hassas dengesini ifade eder.

Daha iyi kavranması adına örnekler üzerinden ilerleyelim;

  • Aşırı Sıkı Politikalar: Eğer bir CSP politikası aşırı sıkı tanımlanırsa, bu, bazı yararlı ve güvenli içeriklerin veya scriptlerin engellenmesine neden olabilir. Örneğin, harici bir CDN (İçerik Dağıtım Ağı) kaynağından bazı kitaplıkları yüklemek isteyebilirsiniz. Ancak eğer CSP politikanız bu CDN’yi kabul etmezse, sayfa düzgün bir şekilde çalışmayabilir.
  • Aşırı Gevşek Politikalar: Öte yandan, çok gevşek bir CSP politikası, kötü niyetli aktörlerin saldırı yapma olasılığını artırabilir. Örneğin, tüm harici scriptlerin çalışmasına izin vermek potansiyel bir güvenlik riskidir.

Raporlama Özelliği

CSP (Content Security Policy) raporlama özelliği, bir web sayfası veya uygulamasının belirlediği CSP politikalarına uymayan içeriklerin (örneğin, yasaklı bir kaynaktan gelen scriptler) tespit edilmesi durumunda bu ihlallerin belirlenen bir endpoint’e raporlanmasını sağlar. Bu, web site sahiplerinin veya geliştiricilerinin potansiyel güvenlik ihlallerini izlemelerine ve politikalarını buna göre ayarlamalarına yardımcı olur.

CSP Raporlama Nasıl Çalışır?

  1. Raporlama Direktifleri: report-uri veya report-to direktifleri kullanılarak, ihlallerin nereye raporlanacağı belirlenir.

Content-Security-Policy: default-src ‘self’; report-uri https://example.com/reporting-endpoint

Bu örnekte, politikaya aykırı içeriklerin tespit edilmesi durumunda, ihlal raporları https://example.com/reporting-endpoint adresine POST isteği olarak gönderilir.

  1. Rapor İçeriği: Bir ihlal tespit edildiğinde, rapor genellikle şu bilgileri içerir:
  • Hangi politikanın ihlal edildiği,
  • İhlal eden belirli içeriğin veya kaynağın URL’si,
  • İhlalin meydana geldiği sayfanın URL’si,
  • ve diğer ilgili bilgiler.
  1. Report-Only Modu: Web siteleri, politikalarını sıkılaştırmadan önce potansiyel sorunları tespit etmek için Content-Security-Policy-Report-Only başlığını kullanabilirler. Bu mod, ihlalleri sadece raporlar ve engellemez, böylece geliştiriciler gerçek kullanıcı etkileşimlerinde neyin engelleneceğini öğrenirler. Örneğin;

Content-Security-Policy-Report-Only: default-src ‘self’; report-uri https://example.com/reporting-endpoint

Test Süreci

CSP (Content Security Policy) test süreci, bir web sitesinin veya uygulamasının CSP kurallarını doğru ve etkili bir şekilde uygulayıp uygulamadığını kontrol etmek için uygulanan adımlar bütünüdür. CSP’nin amacı, potansiyel güvenlik tehditlerini önlemek ve kötü niyetli içeriğin yürütülmesini engellemektir. Doğru bir test süreci, CSP’nin bu amaca uygun olarak çalıştığından emin olmamıza yardımcı olur.

CSP Test Sürecinin Temel Adımları

  1. Politika Tanımlama: İlk olarak, hangi içeriğin güvenli olduğunu ve hangi içeriğin çalıştırılmasının engellenmesi gerektiğini belirlemek için bir CSP politikası oluşturun.
  1. Report-Only Modunda Başlatma: Politikanızı ilk oluşturduğunuzda, Content-Security-Policy-Report-Only başlığını kullanarak politikanızı “sadece raporlama” modunda çalıştırın. Bu, politika ihlallerini engellemeden sadece raporlar, böylece potansiyel sorunları tespit edebilirsiniz.
  1. Ihlal Raporlarını İnceleme: Raporlama endpoint’inize gönderilen ihlal raporlarını düzenli olarak kontrol edin. Bu raporlar, politikanızın yanlışlıkla hangi meşru içerikleri engellediğini gösterir.
  1. Politika Ayarlamaları: İhlal raporlarına dayanarak, politikanızı ayarlayın. Örneğin, bir CDN’nin güvenli olduğuna karar verirseniz, bu CDN’yi CSP’nize ekleyin.
  1. Manuel Testler: Farklı tarayıcılar ve cihazlarda web sitenizi veya uygulamanızı manuel olarak test edin. CSP’nin tüm tarayıcılarda doğru çalıştığından emin olun.
  1. Otomatik Testler: Otomatik test araçlarını veya hizmetlerini kullanarak CSP’nin doğru şekilde çalışıp çalışmadığını kontrol edin.
  1. Enforce Moduna Geçiş: CSP’nin doğru çalıştığına dair yeterince güvence aldıktan sonra, Content-Security-Policy başlığını kullanarak politikanızı zorlama moduna alın. Bu, ihlalleri aktif olarak engelleyecektir.
  1. Sürekli İzleme: Web siteniz veya uygulamanızdaki içerik ve ihtiyaçlar zamanla değişebilir. Bu nedenle, CSP ihlal raporlarını düzenli olarak gözden geçirin ve politikanızı gerektiği şekilde güncelleyin.

CSP, web uygulamalarının ve sitelerinin siber tehditlere karşı korunmasında kritik bir rol oynar. Doğru uygulandığında, kullanıcılarınızın ve verilerinizin güvende olmasını sağlar. Ancak, bu korumanın etkili olması için politikaların sürekli güncellenmesi ve optimize edilmesi gerekmektedir. CSP ile ilgili Google dökümanına ulaşmak için bu linki kullanabilirsiniz. Herkese bol kullanılıcı günler.

Skip to content