HSTS Nedir?
Kısa tanım
HSTS (HTTP Strict Transport Security), bir sitenin Strict-Transport-Security yanıt başlığıyla tarayıcıya kendisine belirli bir süre boyunca yalnızca HTTPS üzerinden bağlanmasını bildirdiği güvenlik mekanizmasıdır. Tarayıcı bu süre içinde http:// adreslerini istek göndermeden https:// olarak açar ve sertifika hatalarında kullanıcının uyarıyı geçmesine izin vermez. Böylece ilk HTTP isteğini hedef alan saldırıların önü kesilir.
Diğer adları: HTTP Strict Transport Security, Strict-Transport-Security, HSTS başlığı, HSTS preload

Yönlendirme yetmiyorsa neden?
Çoğu site HTTP isteklerini 301 yönlendirmesi ile HTTPS'e gönderir. Ancak kullanıcı adres çubuğuna yalnızca alan adını yazdığında ya da eski bir HTTP bağlantısına tıkladığında, ilk istek şifresiz gider. Aynı ağdaki bir saldırgan bu ilk isteği yakalayıp kullanıcıyı HTTPS'e hiç yönlendirmeden sahte ya da şifresiz bir sürümde tutabilir (SSL stripping olarak bilinen yöntem). HSTS, tarayıcının bu ilk adımı kendi içinde atlamasını sağlar.
Tarayıcı HSTS başlığını bir kez HTTPS üzerinden aldıktan sonra, belirtilen süre boyunca o alan adına giden her http:// isteğini ağa çıkmadan https://'e çevirir. Chrome geliştirici araçlarında bu durum "307 Internal Redirect" olarak görünür; sunucu tarafında böyle bir yanıt yoktur. Ayrıca sertifika hatası olduğunda tarayıcı "yine de devam et" seçeneğini sunmaz.
Başlığın yönergeleri
Strict-Transport-Security: max-age=63072000; includeSubDomains; preloadmax-age: Kuralın saniye cinsinden geçerlilik süresi. Her yanıtla yenilenir.max-age=0kuralı tarayıcıdan siler.includeSubDomains: Kural tüm alt alan adlarını da kapsar.preload: Alan adının tarayıcılara gömülü HSTS listesine eklenmeye hazır olduğunu belirtir; tek başına bir şey yapmaz, başvuru ayrıca yapılır.
Başlık yalnızca HTTPS yanıtlarında anlam taşır; HTTP üzerinden gönderilen bir HSTS başlığını tarayıcılar standart gereği yok sayar. Bu yüzden HSTS, HTTP'den HTTPS'e yönlendirmenin yerini almaz; ona eklenen bir katmandır ve güvenlik başlıkları setinin temel parçalarından biridir.
İlk ziyaret sorunu ve preload listesi
HSTS'in zayıf noktası, tarayıcının kuralı öğrenebilmesi için siteye en az bir kez HTTPS ile ulaşmış olması gerektiğidir. Bu boşluğu preload listesi kapatır: Chrome'un yönettiği ve diğer büyük tarayıcıların da kullandığı bu liste, tarayıcının içine gömülü gelir. Listeye girmenin koşulları hstspreload.org üzerinde yayımlanır: geçerli bir sertifika, aynı host üzerinde HTTP'den HTTPS'e yönlendirme, tüm alt alan adlarının HTTPS ile sunulması ve en az bir yıllık (31536000 saniye) max-age ile birlikte includeSubDomains ve preload yönergeleri.
Geri alınması zor bir karar
HSTS'in en büyük riski, yanlış kapsamla açılmasıdır. includeSubDomains eklendiğinde yalnızca HTTP ile çalışan eski bir alt alan adı (örneğin şirket içi bir panel, bir yazıcı arayüzü ya da eski bir e-posta yönetim sayfası) tarayıcılar için anında erişilemez hâle gelir. Preload listesinde bu etki herkese açık olmayan iç alt alan adlarını da kapsar. Listeden çıkmak mümkündür ama değişikliğin tarayıcı güncellemeleriyle kullanıcılara ulaşması aylar sürer.
Güvenli bir devreye alma şöyle ilerler:
- Tüm alt alan adlarının HTTPS ile çalıştığını envanter çıkararak doğrulayın.
max-age=300gibi birkaç dakikalık bir süreyle başlayın, sorun yoksa bir haftaya, sonra bir aya çıkın.- Ardından
includeSubDomainsekleyin ve aynı kademeli artışı tekrarlayın. - Ancak tüm bunlar aylarca sorunsuz çalıştıysa en az bir yıllık süre ve
preloadile listeye başvurun.
SEO Analiz Aracı, HTTPS kontrollerinin parçası olarak HSTS başlığının bulunup bulunmadığını raporlar.

