CloudSpex

Domain sağlığı rehberi

Temel HTTP güvenlik başlıkları

HTTP güvenlik başlıkları, bir web sitesi yanıtıyla birlikte gönderilen tarayıcı talimatlarıdır. Yaygın riskleri azaltabilirler. Ancak bir başlık yalnızca uygulamaya uyduğunda ve güvenli biçimde test edildiğinde yararlıdır.

Güvenlik Başlıkları Denetleyici aracını kullanın

English

Bu denetleyicinin raporladığı üç başlık

Content-Security-Policy, bir tarayıcının hangi içerik kaynaklarını yüklemesine izin verildiğini tanımlayabilir. Güçlü bir başlıktır. Ancak politika, uygulamanın gerçekten kullandığı betiklere, stillere, çerçevelere ve üçüncü taraf servislere göre tasarlanmalıdır.

Strict-Transport-Security, destekleyen tarayıcılara belirli bir süre boyunca HTTPS'i tercih etmelerini söyler. X-Frame-Options, bir sayfanın çerçeve içine alınıp alınamayacağını denetlemeye yardımcı olabilir. CloudSpex şu anda bu başlıkların, güvenli biçimde ulaşılan son HTTPS yanıtında bulunup bulunmadığını raporlar.

Başlığın varlığı tam bir güvenlik incelemesi değildir

Mevcut bir başlığın değeri yine de uygunsuz, fazla geniş ya da sitenin işleyişiyle uyumsuz olabilir. Öte yandan eksik bir başlık, körü körüne kopyala yapıştır bir düzeltme yerine dikkatle test edilmiş bir uygulama gerektirebilir.

Herkese açık denetleyici, bilinçli olarak küçük bir izin listesindeki başlıkların var olup olmadığını raporlar. Politikanın gücünü puanlamaz, ham yanıt başlıklarını göstermez ve uygulama güvenlik testinin yerini tutmaz.

Değişiklikleri güvenli biçimde yapın

Başlıkları ekleyen katmanı belirleyin: uygulama kodu, web sunucusu, CDN, ters proxy ya da barındırma kontrol paneli. Her seferinde tek bir politikayı değiştirin ve temel kullanıcı akışlarını, gömülü içeriği, kimlik doğrulamayı ve üçüncü taraf entegrasyonlarını test edin.

  1. Bir dağıtımdan ya da proxy değişikliğinden sonra herkese açık HTTPS yanıtını kontrol edin.
  2. Her başlık için yapılandırmanın sahibini bulun.
  3. Platform destekliyorsa yalnızca raporlayan (report-only) ya da kademeli bir yaklaşım kullanın.
  4. Kısıtlayıcı bir politikayı uygulamaya almadan önce kritik kullanıcı akışlarını test edin.
  5. CDN, barındırma ya da uygulama değişikliklerinden sonra yeniden kontrol edin.

HTTPS temellerini gözden kaçırmayın

Güvenlik başlıkları; HTTPS sertifikasının geçerliliği, DNS'in doğruluğu, güvenli çerezler, uygulama erişim denetimleri ve zafiyet yönetiminin yerine değil, bunlarla birlikte çalışır.

Sonucu, daha geniş bir güvenlik incelemesi içindeki operasyonel sinyallerden biri olarak kullanın.

Bir sitenin gönderdiği başlıklar nasıl görülür

Güvenlik başlıkları HTTP yanıtının bir parçasıdır, bu yüzden ilk adım onları doğrudan okumaktır. Yönlendirmelerden sonraki son sayfayı ve HTTPS üzerinden kontrol edin: Düz HTTP yanıtında gönderilen bir başlık ya yok sayılır ya da bir anlam taşımaz.

Yanıt başlıklarını komut satırından okumak
curl -sI https://example.com/

HTTP/2 200
strict-transport-security: max-age=31536000; includeSubDomains
content-security-policy: default-src 'self'; frame-ancestors 'none'
x-content-type-options: nosniff
referrer-policy: strict-origin-when-cross-origin

Strict-Transport-Security

HSTS, tarayıcıya max-age içinde verilen saniye sayısı boyunca o sunucuya yapılacak her isteğin HTTPS üzerinden yapılmasını söyler. İlk ziyaretten sonra tarayıcı o sunucuya hiç düz HTTP isteği göndermez. Böylece HTTPS'e yönlendirme gerçekleşmeden önce bağlantının araya girilerek ele geçirilebileceği aralık kapanır.

Aynı zamanda sonuçları en kalıcı olan başlıktır. Tarayıcı politikayı bir kez sakladığında site, max-age süresinin tamamı boyunca HTTPS üzerinden çalışmayı sürdürmek zorundadır. includeSubDomains ile aynı kural her alt domain için geçerli olur. Birilerinin hâlâ HTTP üzerinden eriştiği şirket içi alt domainler de buna dahildir. Başlığı önce kısa bir max-age ile devreye alın.

  1. Her sayfanın ve her alt domainin HTTPS üzerinden çalıştığını doğrulayın.
  2. Başlığı max-age=300 ile gönderin ve hiçbir şeyin bozulmadığını kontrol edin.
  3. max-age değerini önce bir haftaya, sonra bir aya, sonra bir yıla çıkarın.
  4. includeSubDomains değerini ancak alt domainleri denetledikten sonra ekleyin.
  5. preload değerini kalıcı sayın. Tarayıcıların preload listelerinden çıkarılmak aylar sürer.
Temkinli bir ilk değer ve olgunlaşmış bir değer
Strict-Transport-Security: max-age=300
Strict-Transport-Security: max-age=31536000; includeSubDomains

Content-Security-Policy

Bir içerik güvenliği politikası, tarayıcıya bir sayfanın betikleri, stilleri, görselleri, çerçeveleri ve diğer kaynakları hangi kaynaklardan yükleyebileceğini söyler. Asıl amacı siteler arası betik çalıştırmanın (XSS) vereceği zararı sınırlamaktır: İzin verilenler listesinde olmayan, sayfaya enjekte edilmiş bir betik çalışmaz.

CSP, devreye alması en zor başlıktır, çünkü sitenin gerçekte nasıl kurulduğuyla örtüşmesi gerekir. Fazla katı bir politika analitik araçlarını, ödeme bileşenlerini ya da satır içi betikleri bozar. Betikler için unsafe-inline ile gevşetilmiş bir politika ise korumanın büyük bölümünden vazgeçer. Güvenilir yol, report-only modunda başlamaktır. Bu modda tarayıcı, engelleyeceği şeyleri engellemeden raporlar.

  1. Politikayı Content-Security-Policy-Report-Only olarak yayınlayın.
  2. Sitenin tüm olağan kullanımını kapsayan bir süre boyunca ihlalleri toplayın.
  3. Meşru kaynakları politikaya ekleyin. Satır içi betikleri mümkünse kaldırın ya da yeniden yazın, değilse bir nonce ile izin verin.
  4. Başlık adını Content-Security-Policy olarak değiştirin.
  5. Daha katı bir sürümü test ederken yanında bir report-only politikası da bulundurun.
Başlangıç için bir report-only politikası
Content-Security-Policy-Report-Only: default-src 'self';
  script-src 'self' https://cdn.example.net;
  img-src 'self' data:;
  frame-ancestors 'none';
  base-uri 'self'

Clickjacking koruması

Clickjacking, sitenizi başka bir sayfada görünmez bir çerçeveye yerleştirir ve ziyaretçiyi kandırarak sitenizdeki bir şeye tıklatır. Çerçeveye alınmayı iki mekanizma önler. X-Frame-Options daha eski olanıdır ve DENY ile SAMEORIGIN değerlerini alır. CSP'nin frame-ancestors yönergesi onun yerini alır ve izin verilen üst sitelerin bir listesine olanak tanır.

İkisi birlikte gönderildiğinde, frame-ancestors yönergesini destekleyen tarayıcılar onu kullanır ve X-Frame-Options başlığını yok sayar. Uyumluluk için ikisini birden göndermek makuldür. Bir iş ortağının gömmesi gereken bir sayfada korumayı kaldırmak yerine o iş ortağını frame-ancestors içinde listeleyin.

X-Content-Type-Options

Bu başlığın yararlı tek bir değeri vardır: nosniff. Tarayıcıya içerik türünü içeriğe bakarak tahmin etmek yerine bildirilen türe güvenmesini söyler. Bu da görsel olarak yüklenmiş bir dosyanın betik olarak çalıştırılmasını önler. Yapılandırması yoktur ve sunucu betikleri ile stil dosyaları için doğru içerik türlerini gönderdiği sürece neredeyse hiç riski yoktur. Eklemesi en kolay başlıktır.

Referrer-Policy ve Permissions-Policy

Referrer-Policy, bir ziyaretçi bir bağlantıya tıkladığında ya da bir kaynak yüklendiğinde mevcut adresin ne kadarının sonraki siteye gönderileceğini denetler. strict-origin-when-cross-origin değeri, kendi siteniz içinde tam adresi, diğer sitelere yalnızca kaynağı (origin) gönderir. HTTPS'ten HTTP'ye geçişte ise hiçbir şey göndermez. Güncel tarayıcılarda varsayılan değer budur. Açıkça ayarlamak eski tarayıcılardaki ziyaretçileri korur. Bunun önemli olmasının nedeni, token ya da kişisel veri içeren adreslerdir.

Permissions-Policy, bir sitenin kamera, mikrofon ve konum gibi kullanmadığı tarayıcı özelliklerini hem kendisi hem de gömdüğü çerçeveler için kapatmasını sağlar. Ele geçirilmiş ya da üçüncü taraf bir betiğin ziyaretçiden isteyebileceklerini sınırlar.

Tipik değerler
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: camera=(), microphone=(), geolocation=()

Kaldırılması gereken başlıklar

Her güvenlik başlığı hâlâ yararlı değildir. X-XSS-Protection, güncel tarayıcılardan kaldırılmış olan ve kendisi de kötüye kullanılabilen bir tarayıcı filtresini denetliyordu. Bu başlık ya hiç bulunmamalı ya da 0 olarak ayarlanmalıdır. Public-Key-Pins kullanımdan kaldırılmıştır. Sitelerin kendilerini erişime kapatmasına yol açtıktan sonra tarayıcılardan çıkarılmıştır. Expect-CT, sertifika şeffaflığı artık varsayılan olarak uygulandığı için geçerliliğini yitirmiştir.

Tam sürüm numarası içeren Server ve X-Powered-By gibi yazılım sürümlerini açığa vuran başlıklar ise hiç koruma sağlamaz. Bir siteyi bilinen bir zafiyetle eşleştirmeyi kolaylaştırdıkları için kırpılmaya değerdir.

Başlıklar nerede ayarlanır ve nerede kaybolur

Bir başlığı uygulama, web sunucusu, ters proxy ya da CDN ekleyebilir ve bu katmanlar her zaman birbiriyle uyuşmaz. Üç etkiyi kontrol etmeye değer. İki katmanda ayarlanan aynı başlık farklı değerlerle iki kez gönderilebilir ve tarayıcılar bu durumda başlığa göre değişen kurallar uygular. Uygulamada ayarlanan bir başlık, farklı bir katmanın sunduğu statik dosyalarda, hata sayfalarında ve yönlendirmelerde eksik olabilir. Bir CDN de başlık eklenmeden önceki bir yanıtı önbelleğinde tutuyor olabilir.

Yalnızca ana sayfayı değil, birkaç farklı yanıt türünü test edin: statik bir dosya, 404 dönen bir sayfa, bir yönlendirme ve bir API uç noktası.

Bir başlık kontrolünün size söyleyemeyecekleri

Bir tarayıcı araç hangi başlıkların bulunduğunu görür ve bazı değerleri değerlendirebilir. Bir içerik güvenliği politikasının uygulamanın ihtiyacıyla örtüşüp örtüşmediğini ya da uygulamada başlıkların çözmediği zafiyetler bulunup bulunmadığını bilemez. Başlıklar tarayıcıdaki belirli saldırıların etkisini azaltır. Girdi doğrulamanın, erişim denetiminin ya da yama uygulamanın yerini tutmaz. CloudSpex Güvenlik Başlıkları Denetleyici, herkese açık bir sayfanın hangi başlıkları gönderdiğini raporlar ve bunların varlığını bir güvenlik hükmü olarak sunmaz.

Çerezler ve kaynaklar arası yalıtım

Güvenlik başlıklarıyla birlikte sıkça iki komşu konu ele alınır. Çerez öznitelikleri Set-Cookie başlığında ayarlanır ve bu listedeki herhangi bir başlık kadar önemlidir: Secure çerezi düz HTTP'den uzak tutar, HttpOnly onu betiklerden gizler, SameSite ise başka bir sitede başlayan isteklerle ne zaman gönderileceğini sınırlar. Bunlar olmayan bir oturum çerezi, diğer başlıkların sağladığının büyük bölümünü boşa çıkarır.

Kaynaklar arası başlıklar, yani Cross-Origin-Opener-Policy, Cross-Origin-Embedder-Policy ve Cross-Origin-Resource-Policy, bir sayfayı onu açan ya da gömen diğer sitelerden yalıtır. Birkaç güçlü tarayıcı özelliği için gereklidir, bunun dışında isteğe bağlıdır. Bunları bilinçli olarak ekleyin, çünkü açılır pencereye dayanan giriş akışlarını ve gömülü üçüncü taraf içeriği bozabilirler.

Sık sorulan sorular

CSP'nin bulunması sitemin güvenli olduğu anlamına mı gelir?

Hayır. CSP'nin yalnızca var olması, politikanın uygun olduğunu ya da uygulamada başka güvenlik sorunu bulunmadığını kanıtlamaz.

HSTS'yi hemen eklemeli miyim?

Önce sitenin tamamının HTTPS üzerinden güvenilir biçimde erişilebilir olduğunu doğrulayın. HTTPS hazır değilse bir HSTS politikası toparlanmayı zorlaştırabilir.

CloudSpex ham başlıkları gösteriyor mu?

Hayır. Herkese açık sonuç, desteklenen başlık sinyallerinden oluşan küçük ve arındırılmış bir izin listesini gösterir.

Önce hangi güvenlik başlığını eklemeliyim?

X-Content-Type-Options: nosniff ve bir Referrer-Policy neredeyse hiç risk taşımaz. Ardından kısa bir max-age ile HSTS gelir. Content-Security-Policy en çok emek isteyen başlıktır ve report-only modunda başlamalıdır.

HSTS geri alınabilir mi?

Başlığı max-age=0 ile gönderin. Siteyi yeniden ziyaret eden tarayıcılar politikayı bırakır. Yeniden ziyaret etmeyen tarayıcılar politikayı süresi dolana kadar saklar. Preload listesine alınmış bir domain ise tarayıcılar güncellenmiş bir liste yayınlayana kadar listede kalır.

X-Frame-Options hâlâ gerekli mi?

CSP'nin frame-ancestors yönergesi onun yerini alır. İkisini birden göndermek zararsızdır ve eski tarayıcıları da kapsar.

Herkese açık kontrolleri başlangıç noktası olarak kullanın

CloudSpex yalnızca dışarıdan görülebilen sınırlı sinyalleri okur. DNS, web sitesi, sertifika ya da e-posta ayarlarınızı değiştirmez. Bir düzeltmeyi uygulamadan önce sorumlu sağlayıcıyı doğrulayın ve değişikliği test edin.

Yayın bilgisi

Yazan ve gözden geçiren: CloudSpex. Kaynaklar: konuyla ilgili herkese açık teknik standartlar ve sağlayıcı belgeleri. Son gözden geçirme: 10 Kasım 2026. Ürünün davranışı ya da dayanılan kurallar değiştiğinde rehberleri güncelliyoruz.