hosting

Güvenlik Başlıkları: Hosting Tarafında Tarayıcıya Kural Koymak

Başlıkların çalışma mantığı, çerçeveleme koruması, içerik güvenlik politikası, kademeli kurulum, HTTPS zorunluluğu ve doğrulama. Güvenlik Başlıkları: Hosting…

Güvenlik Başlıkları: Hosting Tarafında Tarayıcıya Kural Koymak
İçindekiler
  1. Temel Mantık
  2. Çerçeveleme Koruması
  3. İçerik Güvenlik Politikası
  4. Politikayı Kademeli Kurmak
  5. Şifreli Bağlantı Zorunluluğu
  6. Diğer Başlıklar
  7. Hosting Hesabında Tanımlama
  8. Doğrulama
  9. Sonuç
  10. Sıkça Sorulan Sorular (SSS)
  11. Başlıkları nereden tanımlamalıyım?
  12. İçerik güvenlik politikası sitemi bozar mı?
  13. Şifreli bağlantı zorunluluğunun riski var mı?
  14. Hangi başlıklarla başlamalıyım?

Güvenlik Başlıkları: Hosting Tarafında Tarayıcıya Kural Koymak

Sitenizin güvenliği yalnızca sunucuda bitmiyor. Tarayıcıya gönderdiğiniz birkaç HTTP başlığı, kullanıcı tarafındaki koca bir saldırı sınıfını kapatabiliyor.

Bu yazı, güvenlik başlıklarının ne yaptığını ve hosting hesabınızda nasıl tanımlanacağını ele alıyor.

Temel Mantık

Güvenlik başlıkları, sunucunun tarayıcıya verdiği talimatlardır:

  • Bu sayfayı çerçeve içinde gösterme.
  • Yalnızca şu kaynaklardan betik yükle.
  • Bu siteye her zaman şifreli bağlan.
  • Dosya türünü tahmin etme, söylediğimi kullan.
  • Adres bilgisini dışarıya taşıma.

Bu talimatların ortak özelliği şudur: koruma sunucuda değil, kullanıcının tarayıcısında uygulanır.

Dolayısıyla saldırganın sunucunuza erişmesine gerek olmayan saldırı biçimlerini — çerçeveleme, betik enjeksiyonu, protokol düşürme — engellerler.

Çerçeveleme Koruması

Sitenizin başka bir sayfanın içine görünmez bir çerçeve olarak yerleştirilmesi, tıklama hırsızlığına imkân tanır:

  1. Saldırgan kendi sayfasında sizin sitenizi görünmez bir çerçevede açar
  2. Üstüne kendi düğmelerini yerleştirir
  3. Kullanıcı sahte düğmeye tıkladığını sanır
  4. Gerçekte sizin sitenizde bir işlem yapar

Koruma basittir: sitenizin çerçeve içinde gösterilmesini yasaklayan bir başlık göndermek, bu saldırıyı tamamen kapatır.

İstisna gerekiyorsa — örneğin kendi alt alan adınızda gömülü kullanım varsa — yalnızca izin verilen kaynakları belirten bir kural tanımlanabilir.

İçerik Güvenlik Politikası

En güçlü ama en zahmetli başlıktır. Yaptığı iş, sayfanın hangi kaynaklardan ne yükleyebileceğini sınırlamaktır:

Kural türü Neyi kontrol eder
Betik kaynakları JavaScript nereden yüklenebilir
Stil kaynakları CSS nereden yüklenebilir
Görsel kaynakları Resimler nereden gelebilir
Bağlantı hedefleri Sayfa nereye istek yapabilir
Çerçeve izinleri Neyi gömebilir, kim gömebilir

Doğru yapılandırıldığında, sayfanıza enjekte edilen bir betik çalışmaz — çünkü izin verilen kaynak listesinde değildir. Bu, betik enjeksiyonu saldırılarına karşı en güçlü savunmadır.

Politikayı Kademeli Kurmak

Bu başlığı doğrudan zorlayıcı modda açmak siteyi bozar. Doğru sıra:

  • Önce yalnızca rapor modunda açın. Hiçbir şey engellenmez.
  • İhlal raporlarını toplayın. Neler engellenecekti?
  • Meşru kaynakları kurala ekleyin.
  • Rapor sıfırlanana kadar sürdürün.
  • Ardından zorlayıcı moda geçin.

Birinci madde bu başlığın en değerli özelliğidir: rapor modu, politikanın neyi engelleyeceğini siteyi hiç bozmadan gösterir.

Bu aşama atlanırsa, canlı sitede aniden bozulan bir düzen veya çalışmayan bir form ile karşılaşırsınız — üstelik nedeni tarayıcı konsolunda gizli kalır.

Şifreli Bağlantı Zorunluluğu

Bu başlık tarayıcıya "bu siteye bir daha asla şifresiz bağlanma" der:

  1. Kullanıcı ilk kez HTTPS ile bağlanır
  2. Başlığı alır ve kaydeder
  3. Sonraki ziyaretlerde şifresiz denemeye izin vermez
  4. Yönlendirme beklenmeden doğrudan şifreli gider

Kazanç, yönlendirme anındaki açığı kapatmaktır: şifresiz istekten şifreliye yönlendirme arasında geçen kısa an, araya girme saldırısı için bir fırsattır ve bu başlık o fırsatı ortadan kaldırır.

Dikkat: bu başlık bir kez gönderildiğinde tarayıcıda süresi dolana kadar kalır. Sertifikanız sorunlu hâle gelirse siteye erişilemez. Bu yüzden önce kısa bir süreyle başlayıp, her şeyin sağlam olduğundan emin olduktan sonra süreyi uzatmak doğru yaklaşımdır.

Diğer Başlıklar

Kurulumu kolay, faydası net olanlar:

Başlık işlevi Önerilen davranış
Tür tahmini engelleme Her zaman açık
Yönlendiren bilgisi kontrolü Sınırlı bilgi gönder
Tarayıcı özellik izinleri Kullanmadıklarını kapat
Sunucu bilgisi gizleme Sürüm bilgisini yayma

İkinci satır bir gizlilik önlemidir: varsayılan davranışta, sitenizden başka bir siteye tıklayan kullanıcının hangi sayfadan geldiği karşı tarafa bildirilir ve bu adres özel bilgi içerebilir.

Üçüncü satır ise gereksiz yetkileri kapatır — sitenizin kameraya, mikrofona veya konum bilgisine ihtiyacı yoksa, bunları açıkça kapatmak enjekte edilen bir betiğin bunları istemesini engeller.

Hosting Hesabında Tanımlama

Bu başlıklar iki yerden gönderilebilir:

  • Web sunucusu yapılandırma dosyasından — tercih edilen yöntem.
  • Uygulama kodundan — çıktı başlamadan önce.

Birinci yöntem daha güvenilirdir çünkü yalnızca PHP sayfalarına değil, tüm dosyalara uygulanır — görseller, stil dosyaları ve statik sayfalar dahil.

Paylaşımlı hostingde bu genellikle dizin bazlı yapılandırma dosyasıyla yapılır. Sunucu türüne göre söz dizimi değişir; Windows hosting ve Linux tabanlı paketlerde kullanılan yapılandırma dosyaları farklıdır, ancak sonuç aynıdır.

Doğrulama

Başlıkların gerçekten gönderildiğini kontrol edin:

  1. Tarayıcı geliştirici araçlarında ağ sekmesini açın
  2. Ana sayfa isteğini seçin
  3. Yanıt başlıklarını inceleyin
  4. Bir de statik dosya isteğini kontrol edin
  5. Konsolda politika ihlali uyarısı var mı bakın

Dördüncü madde önemli bir farkı ortaya çıkarır: başlıkları uygulama kodundan gönderiyorsanız, statik dosyalarda görünmezler — bu, korumanın kısmi olduğu anlamına gelir.

Sonuç

Güvenlik başlıklarının ortak özelliği, korumanın sunucuda değil kullanıcının tarayıcısında uygulanmasıdır — bu yüzden sunucunuza hiç dokunmayan saldırı biçimlerini engellerler. En güçlüsü içerik güvenlik politikasıdır ama doğrudan zorlayıcı modda açmayın: önce rapor modunda çalıştırıp neyin engelleneceğini siteyi bozmadan görün. Şifreli bağlantı zorunluluğunu ise kısa süreyle başlatın, sertifikanız sorun çıkarırsa siteye erişilemez hâle gelir. Başlıkları uygulama kodundan değil sunucu yapılandırmasından gönderin — aksi hâlde statik dosyalar korumasız kalır.

Sıkça Sorulan Sorular (SSS)

Başlıkları nereden tanımlamalıyım?

Mümkünse web sunucusu yapılandırma dosyasından. Bu yöntem tüm dosyalara uygulanır — görseller, stil dosyaları ve statik sayfalar dahil. Uygulama kodundan gönderirseniz yalnızca PHP çıktısı korunur, statik içerik açıkta kalır.

İçerik güvenlik politikası sitemi bozar mı?

Doğrudan zorlayıcı modda açarsanız büyük ihtimalle bozar. Önce rapor modunda çalıştırın — hiçbir şey engellenmez, yalnızca neyin engelleneceği raporlanır. Meşru kaynakları kurala ekleyip raporlar sıfırlandıktan sonra zorlayıcı moda geçin.

Şifreli bağlantı zorunluluğunun riski var mı?

Var. Başlık bir kez gönderildiğinde tarayıcıda süresi dolana kadar kalır ve sertifikanız sorunlu hâle gelirse siteye erişilemez. Bu yüzden kısa bir süreyle başlayın, her şeyin sağlam çalıştığından emin olduktan sonra süreyi uzatın.

Hangi başlıklarla başlamalıyım?

Kurulumu kolay ve riski düşük olanlarla: çerçeveleme koruması, tür tahmini engelleme ve yönlendiren bilgisi kontrolü. Bunlar birkaç satırda tanımlanır ve neredeyse hiçbir siteyi bozmaz. İçerik güvenlik politikasını en sona bırakın.