İYİ KORUNAN BİR ZİYARET

HTTPS’in arkasında ne var? TLS ve HTTP güvenlik başlıklarıyla tanışın

Bir HTTPS ziyareti şifreli bağlantıyı, kimliği doğrulanabilen bir sunucuyu ve tarayıcıya verilen açık kuralları bir araya getirir. Her katmanın görevini ve bunları sitenin düzenli bakımına nasıl katacağınızı öğrenin.

Kavramsal çizim: içlerinde birer anahtar bulunan iki fildişi kule, kalkan biçimli koruyucu katmanlarla sarılmış ışıklı bir cam tüple birbirine bağlanıyor.
Kavramsal görsel

Bir restoranın web sitesinden masa ayırttığınızı düşünün. Sayfayı açıyor, saati seçiyor, hesabınıza giriş yapıyor ve sayfaya gömülü bir ödeme hizmetiyle rezervasyonu onaylıyorsunuz. Bu varsayımsal ziyaret arka planda birbirine bağlı birkaç sistemden geçer; sizin içinse tek ve sade bir deneyimdir.

TLS ve güvenlik başlıkları bu sistemlerin güvenli biçimde birlikte çalışmasına yardım eder. TLS bağlantıyı şifreler ve tarayıcının sunucunun kimliğini doğrulamasını sağlar. Yanıt başlıkları ise tarayıcıya içeriği, çerezleri ve sonraki ziyaretleri nasıl ele alacağını söyler.

Bu rehberin kapsamı

Bu rehber kavramları anlatır. Ücretsiz Yayına Hazırlık Snapshot’ı sekiz pasif kontrol çalıştırır; tek bağlantıdaki TLS sürümünü kaydeder, tüm sürümleri listelemez. Çoğu başlığın yalnızca varlığına bakar; HTTPS yönlendirmesini ancak http:// adresi girilirse dener. Sızma testi (pentest) değildir.

1. Sertifikanın ziyaretteki rolünü anlayın

Tarayıcı bir siteye HTTPS ile bağlandığında TLS şifreli bir iletişim kanalı kurar. Tarayıcı, sertifikanın istenen alan adını kapsayıp kapsamadığını ve güvendiği bir sertifika otoritesine (CA) uzanan bir zincir oluşturup oluşturmadığını kontrol eder. Sertifikada kapsadığı adlar, geçerlilik süresi ve güven zincirini kurmak için gereken bilgiler yer alır.

Kök alan adı, “www” ve hizmet alt alan adları gibi herkese açık adları listeleyin. Her adı tek tek kontrol edin ve sertifikasını hangi sağlayıcının yönettiğini not edin. CDN ile kaynak sunucunun ayrı sertifikaları ve ayrı yenileme düzenleri olabilir. Sertifika süreleri de kısalıyor: 15 Mart 2026’dan bu yana verilen ve tarayıcıların güvendiği TLS sertifikaları en fazla 200 gün geçerli olabiliyor; bu sınır 15 Mart 2027’de 100 güne, 15 Mart 2029’da 47 güne iniyor. Yenilemeyi otomatikleştirin ve bitiş tarihlerini ayrıca izleyin; örneğin Let’s Encrypt, 4 Haziran 2025’ten beri süre dolumu hatırlatma e-postası göndermiyor.

OWASP TLS rehberi, hangi protokol sürümlerinin destekleneceğine ve yapılandırmanın nasıl korunacağına karar verirken yol gösterir. Bir bağlantıda gerçekten kullanılan TLS sürümünü kaydetmek, bu incelemeye somut bir gözlem ekler.

2. Katmanların birbirini nasıl tamamladığını görün

KatmanKazanımYararlı uygulama
TLS sertifikasıKimliği doğrulanmış, şifreli bağlantıAdları, geçerlilik süresini ve yenilemeden kimin sorumlu olduğunu izleyin
İçerik Güvenliği Politikası (CSP)Sayfa kaynakları ve davranışları için açık kurallarPolitikayı sitenin gerçekten kullandığı kaynaklara göre kurun
HSTSSonraki ziyaretlerde tutarlı HTTPS kullanımıSüreyi ve alan adı kapsamını bilinçli seçin
Çerez öznitelikleriHesap akışına uygun bir oturumGirişi, gömülü hizmetleri ve dış sitelerden dönüşleri test edin

Bu kontrolleri birbirini tamamlayan talimatlar olarak düşünün. Sertifika bağlantının temelini oluşturur, başlıklar ise belirli bir yanıtın nasıl ele alınacağını tarif eder. Sayfaların amaçları da farklıdır: herkese açık bir makale, bir hesap sayfası ve bilerek başka sitelere gömülen bir bileşen, kendi görevine uygun bir politikadan yararlanır.

3. CSP’yi gerçekten kullanılan kaynaklardan oluşturun

İçerik Güvenliği Politikası (CSP), sayfanın hangi kaynaklardan içerik yükleyebileceğini ve tarayıcının hangi davranışlara izin vereceğini tanımlar. İşe betiklerin, görsellerin, yazı tiplerinin, ağ bağlantılarının ve çerçevelerin (iframe) envanterini çıkararak başlayın. Kullanıcı akışını baştan sona izleyin; böylece listeye ancak bir etkileşimden sonra yüklenen ödeme, kimlik doğrulama ve canlı destek kaynakları da girer.

Önerdiğiniz politikanın gerçek kullanımla ne kadar örtüştüğünü Report-Only modunda gözlemleyin. Bu mod kuralları uygulamaz, yalnızca ihlalleri bildirir. Content-Security-Policy-Report-Only bir HTTP yanıt başlığı olarak gönderilmelidir; HTML’deki meta etiketiyle tanımlanamaz. Tarayıcı konsolunu veya ayarladığınız rapor adresini inceleyin, her mesajı ilgili kaynakla eşleştirin ve hangi kuralın gerektiğine karar verin. Temsilî akışları gözden geçirdikten sonra test ettiğiniz politikayı uygulamaya alın. Nonce veya hash değerleriyle belirli betiklere tek tek izin verebilirsiniz. Belgelenmiş bir kaynak envanteri, ileride eklenecek kaynakları değerlendirmeyi kolaylaştırır ve her iznin neden verildiğini açıklar.

4. HTTPS’i tarayıcı için kalıcı bir alışkanlık hâline getirin

HSTS, tarayıcıya bir alan adına belirlenen süre boyunca yalnızca HTTPS ile bağlanmasını söyler. Tarayıcı bu politikayı geçerli bir HTTPS yanıtından öğrenir ve sonraki ziyaretlerde uygular; düz HTTP üzerinden gelen HSTS başlığını ise yok sayar. HSTS etkin bir sitede tarayıcı, sertifika hatası çıktığında ziyaretçiye “yine de devam et” seçeneği sunmaz. Bu yüzden süresi dolmuş bir sertifika, siteyi daha önce ziyaret etmiş kişiler için tamamen erişilemez hâle getirir. Sertifika yenilemesini ve HSTS’i birlikte planlayın. Ekibinizin rahatça izleyebileceği kısa bir başlangıç süresi seçin, davranışı doğrulayın ve süreyi aşamalı olarak uzatın.

includeSubDomains politikayı tüm alt alan adlarına genişletir; bu seçimi alan adı envanterinize ve her alt alan adının HTTPS durumuna göre yapın. Preload ise alan adını tarayıcılara gömülü bir listeye ekler; böylece ilk ziyaret de korunur. Ancak preload başvurularının yapıldığı hstspreload.org bugün HSTS’i önerirken preload’u önermiyor. Gerekçesi, Chrome ve Safari gibi tarayıcıların HTTP ile açılan sayfaları zaten HTTPS’e yükseltmesi. Listeden çıkarılma kararının kullanıcılara ulaşması da aylar sürüyor. Yine de preload’u düşünüyorsanız bunu uzun vadeli bir karar olarak ele alın ve tüm alan adı kapsamını önceden planlayın. MDN’deki HSTS açıklaması bu seçeneklerin birlikte nasıl çalıştığını anlatır.

5. Çerezleri ve başlıkları kullanıcı akışına göre ayarlayın

Oturum çerezi, hizmetin devam eden bir ziyareti tanımasını sağlar. Secure özniteliği, tarayıcının çerezi yalnızca HTTPS isteklerinde göndermesini sağlar (localhost hariç); çerezi JavaScript’ten gizlemez. HttpOnly, sayfadaki JavaScript’in çerezi okumasını engeller (örneğin document.cookie ile), ama tarayıcı çerezi eşleşen isteklerle göndermeye devam eder. Bu sayede XSS yoluyla çerez çalınmasını sınırlar; XSS açığının kendisini ise önlemez. SameSite, çerezin siteler arası isteklerde gönderilip gönderilmeyeceğini belirler. Tarayıcıların varsayılan değeri farklı olabildiği için bu özniteliği açıkça ayarlayın ve değerini giriş ile dış sitelerden dönüş akışlarına göre seçin. SameSite=None kullanan bir çerezde Secure da zorunludur.

Diğer başlıklar içeriğin nasıl işleneceğini netleştirir. X-Content-Type-Options: nosniff, MIME türü yanlış bildirilen betik ve stil dosyalarının tarayıcı tarafından engellenmesini ve diğer yanıtlarda içerik türünün tahmin edilmemesini sağlar; bu nedenle her kaynağın Content-Type değeri doğru olmalıdır. Referrer-Policy, isteklerle gönderilen Referer başlığına adresin ne kadarının yazılacağını belirler. Sayfanın hangi sitelerde çerçeve içine alınabileceğini CSP’nin frame-ancestors yönergesi belirler; X-Frame-Options: DENY veya SAMEORIGIN eski tarayıcılar için yedek olarak kalır. İkisi de yalnızca HTTP başlığı olarak çalışır, meta etiketinde etkisizdir; frame-ancestors ayrıca default-src değerini devralmaz. OWASP HTTP başlıkları rehberi bu ayarları seçerken iyi bir başvuru kaynağıdır. Her başlığın amacını yazılı hâle getirin; böylece uygulama, ters vekil sunucu (reverse proxy) ve CDN yapılandırması tutarlı tek bir politika ortaya koyar.

6. Ziyaretçiye ulaşan son hâli gözlemleyin

Tarayıcının geliştirici araçlarında sıradan bir sayfa isteğini açın ve yönlendirmeleri son yanıta kadar izleyin. Gerçekte teslim edilen sertifikayı, başlıkları ve çerezleri inceleyin. Böylece yapılandırmayı ziyaretçinin deneyimiyle karşılaştırır, her ayarın hangi hizmetten geldiğini görürsünüz.

  1. Desteklediğiniz herkese açık alan adlarını HTTPS ile ziyaret edin.
  2. Sertifika bilgilerini ve son yanıttaki politikaları kaydedin.
  3. Giriş, hesap kurtarma, gömülü ödeme ve dış sitelerden dönüş akışlarını baştan sona tamamlayın.
  4. Konsoldaki uyarıları ve seçtiğiniz rapor adresine gelen mesajları gözden geçirin.

Tarihli bir yapılandırma kaydı tutun ve her katmanı kimin yönettiğini not edin. Barındırma ya da bir entegrasyon değiştiğinde aynı akışla beklenen davranışı yeniden doğrulayın. Planlı bir geçiş ve gerektiğinde dönülebilecek önceki yapılandırma, güncellemeleri ekip içinde rahatça koordine etmenizi sağlar. Ortaya çıkan kontrol listesi, siteyi ileride devralacak kişiler için de pratik bir başlangıç noktası olur.

Bir sitenin başlıklarını hemen kontrol etmek için ücretsiz güvenlik başlıkları kontrolü aracını kullanın.

7. Koruma haritasını sitenin yanında tutun

Herkese açık adları, sertifika sorumlularını, tarayıcının yüklediği kaynakları ve önemli kullanıcı akışlarını tek bir yerde kaydedin.

Sitelemetry’nin ücretsiz Yayına Hazırlık Snapshot’ı kayıt gerektirmeden sekiz pasif kontrol çalıştırır. Bu yazının konusu açısından siteye tek bir TLS bağlantısı kurar; sertifikanın güvenilir olup olmadığına, süresinin 30 gün içinde dolup dolmadığına ve bağlantıda TLS 1.2 ya da 1.3 kullanılıp kullanılmadığına bakar. Ayrıca yönlendirmelerden sonraki son yanıtta hangi güvenlik başlıklarının gönderildiğini kontrol eder; çoğu başlıkta yalnızca varlığına bakılır. Sonuç bir puan, ayrı bir sertleştirme notu ve önce bakılması gereken en fazla üç sinyal olarak gösterilir. Desteklenen tüm TLS sürümlerini ve şifre takımlarını listelemez; bir sızma testi de değildir.

Web sitesi güvenlik rehberi, bu katmanların hesaplar, yetkiler ve günlük bakımla nasıl bağlandığını anlatır.

Sık sorulan sorular

TLS ve güvenlik başlıkları nasıl birlikte çalışır?

TLS iletişimi şifreler ve sunucunun kimliğini doğrular. Başlıklar ise tarayıcıya gelen içeriği, oturumu ve sonraki istekleri nasıl ele alacağını söyler.

CSP’ye nereden başlamalıyım?

Temsilî kullanıcı akışlarında yüklenen kaynakları listeleyin, önerilen politikayı Report-Only başlığıyla gözlemleyin, gelen mesajları inceleyin ve yalnızca amaçlanan davranışa uyan kuralları uygulamaya alın.

HttpOnly çerezi XSS’e karşı tam koruma sağlar mı?

Hayır. HttpOnly sayfadaki betiklerin çerezi okumasını engeller; bu yüzden çerezin çalınıp başka bir yerde kullanılmasını zorlaştırır. Ancak bir XSS açığı, ziyaretçinin tarayıcısında çerezle birlikte istek göndermeye devam edebilir. Açığın kendisini ayrıca kapatmak gerekir.

HSTS preload kullanmalı mıyım?

Preload başvurularının yapıldığı hstspreload.org bugün HSTS’i önerirken preload’u önermiyor, çünkü Chrome ve Safari gibi tarayıcılar HTTP ile açılan sayfaları zaten HTTPS’e yükseltiyor. Listeden çıkarılma kararının kullanıcılara ulaşması da aylar sürüyor. Preload’u düşünüyorsanız önce tüm alt alan adlarınızın kalıcı olarak HTTPS ile çalıştığından emin olun.

Sertifika kaydında neler bulunmalı?

Herkese açık alan adları, sertifika sağlayıcısı, geçerlilik süresi, yenilemeden sorumlu kişi ve ilgili CDN ya da kaynak sunucu düzeni. Sertifika süreleri kısaldığı için yenilemenin otomatik olup olmadığını ve bitiş tarihini kimin izlediğini de yazın. Kaydı barındırma ve alan adı değişikliklerinde gözden geçirin.

Kaynaklar ve ileri okuma

  1. MDN: Content-Security-Policy-Report-Onlydeveloper.mozilla.org
  2. MDN: HTTP Strict Transport Securitydeveloper.mozilla.org
  3. MDN: Set-Cookiedeveloper.mozilla.org
  4. MDN: X-Content-Type-Optionsdeveloper.mozilla.org
  5. MDN: CSP frame-ancestorsdeveloper.mozilla.org
  6. MDN: X-Frame-Optionsdeveloper.mozilla.org
  7. OWASP HTTP başlıkları rehbericheatsheetseries.owasp.org
  8. OWASP TLS rehbericheatsheetseries.owasp.org
  9. OWASP oturum yönetimi rehbericheatsheetseries.owasp.org
  10. HSTS Preload List Submissionhstspreload.org
  11. CA/Browser Forum Baseline Requirements (6.3.2)raw.githubusercontent.com
  12. Let’s Encrypt: süre dolumu bildirim hizmeti sona erdiletsencrypt.org
Sitelemetry ekibi

Sitelemetry yayın ekibi tarafından hazırlanmıştır. Konuyu derinleştirmek için bağlantılı kaynakları inceleyebilirsiniz.

SITELEMETRY

Öğrendiklerinizi uygulayın.

Sitelemetry ile sitenizin yapısını, ayarlarını ve teknik işaretlerini keşfedin.