HSTS Nedir? Tarayıcı Güvenliğini Bir Adım İleri Taşıyın

HSTS Nedir? Tarayıcı Güvenliğini Bir Adım İleri Taşıyın

HSTS Nedir? Tarayıcı Güvenliğini Bir Adım İleri Taşıyın

HTTPS geçişinizi tamamladınız, SSL sertifikanız kurulu, 301 yönlendirmeleriniz çalışıyor. Peki ya ziyaretçiniz tarayıcısına http://siteadi.com yazdığında ne oluyor? Tarayıcı önce HTTP isteği gönderiyor, sunucu 301 ile HTTPS'e yönlendiriyor, ardından güvenli bağlantı kuruluyor. Bu kısa süreçte — yüksek riskli ağlarda — araya girme (man-in-the-middle) saldırısı mümkün. HSTS bu pencereyi tamamen kapatıyor.

HSTS Nedir?

HSTS (HTTP Strict Transport Security), web sunucusunun tarayıcıya "bu siteye her zaman HTTPS üzerinden bağlan, HTTP'yi hiç deneme" talimatını verdiği bir güvenlik mekanizmasıdır. Bu talimat bir HTTP yanıt başlığı aracılığıyla iletilir ve belirtilen süre boyunca tarayıcının belleğinde saklanır.

HSTS aktif olduğunda tarayıcı, kullanıcı HTTP adresi yazsa bile sunucuya HTTP isteği göndermez. İsteği sunucuya ulaşmadan doğrudan HTTPS'e dönüştürür. 301 yönlendirmesi yerine tarayıcı tarafında gerçekleşen bu dönüşüm, araya girme saldırılarına karşı çok daha güçlü bir koruma sağlar.

HSTS Başlığı Nasıl Görünür?

HSTS, sunucunun HTTPS yanıtına eklenen bir başlık satırıdır:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Bu başlığın üç bileşeni var:

max-age, tarayıcının bu kuralı kaç saniye hatırlayacağını belirtir. 31536000 saniye bir yıla karşılık geliyor. Bu süre içinde ziyaretçi tekrar geldiğinde sunucuya sorulmadan doğrudan HTTPS kullanılır.

includeSubDomains, kuralın tüm alt alan adlarını da kapsaması gerektiğini belirtir. blog.siteadi.com, destek.siteadi.com gibi subdomain'ler de aynı HSTS politikasına tabi olur. Bu direktifi eklemeden önce tüm subdomain'lerinizin geçerli SSL sertifikasına sahip olduğundan emin olun — aksi hâlde alt alan adları erişilemez hale gelebilir.

preload, sitenizi tarayıcıların yerleşik HSTS listesine eklenmek üzere aday gösterir. Bu liste, tarayıcının hiç ziyaret edilmemiş sitelere bile doğrudan HTTPS ile bağlanmasını sağlar.

HSTS Preload Listesi Nedir?

Chrome, Firefox, Safari ve Edge, belirli sitelerin her zaman HTTPS üzerinden ziyaret edilmesi gerektiğini önceden bilen bir liste taşıyor. Bu listeye dahil olan siteler için ilk ziyarette dahi HTTP isteği gönderilmiyor.

Preload listesine başvurmak için hstspreload.org adresini ziyaret edin. Başvuru öncesinde karşılanması gereken koşullar şunlar: geçerli SSL sertifikası, ana alan adı HSTS başlığı (max-age en az 31536000, includeSubDomains ve preload direktifleri dahil), tüm HTTP trafiğinin HTTPS'e yönlendirilmesi.

Preload listesine girmek haftalar alabilir ancak listeden çıkmak çok daha uzun sürer ve birçok tarayıcıya yayılması aylar gerektirebilir. Bu yüzden başvuru öncesi tüm subdomain'lerinizin HTTPS desteğine sahip olduğundan kesinlikle emin olun.

HSTS Aktif Etmek Sizi Nelerden Korur?

SSL strip saldırıları, saldırganın HTTPS bağlantısını HTTP'ye indirgemesini sağlayan bir araya girme tekniği. Ziyaretçi güvenli bağlantıda olduğunu zanneder ama aslında şifresiz iletişim kuruyordur. HSTS bu saldırıyı tarayıcı tarafında etkisiz kılar — tarayıcı HTTP isteğini hiç göndermez.

Güvensiz ağlarda pasif dinleme, özellikle halka açık Wi-Fi ağlarında ciddi bir risk. HSTS ile birlikte tarayıcı, bu ağlarda dahi HTTP üzerinden veri göndermez.

HSTS Nasıl Aktif Edilir?

Apache kullanıyorsanız .htaccess dosyasına veya sanal host yapılandırmanıza şunu ekleyin:

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Nginx kullananlar için server bloğuna şunu ekleyin:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

WordPress sitelerinde bazı güvenlik eklentileri (Wordfence, iThemes Security) HSTS başlığını kontrol panelinden aktif etme seçeneği sunuyor.

Dikkat Edilmesi Gerekenler

HSTS'i aktif etmeden önce şunlardan emin olun: SSL sertifikanız geçerli ve yenileme süreciniz otomatik, tüm HTTP sayfaları 301 ile HTTPS'e yönleniyor, kullandığınız tüm subdomain'lerin SSL sertifikası var. Bu koşullardan birini sağlamadan HSTS aktif ederseniz ziyaretçiler sitenize erişemez hale gelebilir ve bu durumu düzeltmek o tarayıcı önbelleğinin temizlenmesine kadar devam eder.

Başlamak için max-age değerini düşük tutun — örneğin 300 saniye. Her şeyin doğru çalıştığından emin olduktan sonra kademeli olarak artırın. Bu yaklaşım hata yapma durumunda hızlıca geri dönebilmenizi sağlar.