HSTS (HTTP Strict Transport Security) Nedir?
HTTP Strict Transport Security (HSTS), web sunucularının tarayıcılara gönderdiği özel bir yanıt başlığı aracılığıyla, bağlantıların yalnızca güvenli bir şekilde nasıl yönetileceğini belirten bir güvenlik yönergesidir.
Bu mekanizma, Strict-Transport-Security parametresini ayarlayarak tarayıcıların her zaman HTTPS üzerinden iletişim kurmasını zorunlu hale getirir. Böylece tarayıcı, o alan adına ait kaynaklara HTTP üzerinden erişim taleplerini dikkate almaz. HSTS, bir web sunucusu ya da barındırma hizmetinde uygulanabilecek güvenlik önlemleri arasında önemli bir yere sahiptir.
HSTS Neden Önemlidir?
HSTS’yi, ev veya iş yerinden çıkarken kapıyı kapatmakla kalmayıp kilitlemeye benzetebiliriz. Web sitenizdeki bilgiler de fiziksel varlıklarınız kadar değerlidir ve korunmaları gerekir. Sadece SSL sertifikası kullanmak güvenliği tam anlamıyla sağlamaz, çünkü kullanıcılar sitenize hâlâ “http://” üzerinden erişmeye çalışabilir. HSTS, tarayıcıları ve uygulamaları HTTPS bağlantısı kullanmaya zorlayarak bu riski ortadan kaldırır. Böylece kullanıcı adres çubuğuna yalnızca “http://” yazsa bile tarayıcı isteği otomatik olarak HTTPS’ye yönlendirir.
Ayrıca HTTPS, Google sıralama kriterleri arasında yer alır. Sayfa hızı ve mobil uyumluluk gibi diğer faktörlerle birlikte değerlendirildiğinde, sitenizin genel kalite puanına katkı sağlar. Google Chrome da SSL sertifikası olmayan siteler için “Güvenli Değil” uyarısı göstermektedir. Bu durum, güvenlik kadar kullanıcı deneyimi ve SEO açısından da önemlidir.
HTTP’den HTTPS’e yalnızca 301 yönlendirmesi yapmak tek başına yeterli değildir. Çünkü HTTP üzerinden yapılan ilk yönlendirme süreci hâlâ saldırganlar tarafından kötüye kullanılabilir. Örneğin, çerezler veya oturum kimlikleri ele geçirilebilir ya da kullanıcılar sahte kimlik avı sitelerine yönlendirilebilir.
HSTS başlığını etkinleştirmek, bu tür saldırıların gerçekleşmesini neredeyse imkânsız hale getirir. Facebook örneğinde görüldüğü gibi:
$ curl –head https://www facebook com
HTTP/1.1 200 OK
Strict-Transport-Security: max-age=15552000; preload
HSTS Nasıl Çalışır?
HSTS, Strict-Transport-Security adı verilen özel bir HTTP başlığı ile işler. Sunucu, HTTPS üzerinden gelen ilk isteğe yanıt verirken bu başlığı da tarayıcıya gönderir. Bu başlık tarayıcıya, politikanın ne kadar süreyle geçerli olacağını (max-age) ve alt alan adlarının da kapsama dâhil olup olmadığını (includeSubDomains) bildirir.
Tarayıcı bu bilgiyi belleğe kaydeder. Belirlenen süre boyunca siteye yalnızca HTTPS üzerinden erişim sağlanır ve HTTP istekleri otomatik olarak engellenir. Ancak tarayıcının bu kuralları uygulaması için kullanıcının siteyi en az bir kez ziyaret etmiş olması gerekir. Eğer preload parametresi de kullanılmışsa, site HSTS preload listesine dâhil edilebilir. Bu liste popüler tarayıcılarda hazır olarak bulunduğundan, kullanıcı siteyi ilk kez ziyaret etse bile doğrudan HTTPS bağlantısı kurulur.
Tarayıcı başlığı aldığı anda bu kuralları devreye sokar. Kullanıcı “http://” yazarak siteye ulaşmaya çalışsa bile tarayıcı isteği otomatik şekilde “https://” formatına dönüştürür. Bu yöntem, özellikle araya girme saldırılarını (man-in-the-middle) ve protokol temelli tehditleri etkisiz hale getirir.
HSTS Nasıl Kurulur?
Eğer siteniz alt alan adlarını da kapsıyorsa, tüm bu alanlarda yalnızca HTTPS kullanımını zorunlu kılmak için bir Wildcard SSL Sertifikası edinmeniz gerekir. Ancak alt alan adları bulunmuyorsa, standart bir SSL sertifikası da güvenliği sağlamak için yeterlidir. Burada önemli olan, SSL sertifikanızın doğru şekilde kurulmuş ve sorunsuz çalışıyor olmasıdır.
HSTS Preload Listesi Nedir?
HSTS’nin preload özelliği, bir web sitesinin kullanıcı hangi tarayıcıyı kullanırsa kullansın otomatik olarak HTTPS üzerinden yüklenmesini sağlar. Bu özellik sayesinde siteye ilk erişimde bile güvenli bağlantı kurulmuş olur. Ancak preload listesine dâhil edilen siteler için önemli bir risk de vardır: Eğer ilerleyen dönemlerde site HTTPS’i doğru şekilde uygulamazsa, kullanıcıların siteye erişimi ciddi şekilde aksayabilir. Çünkü preload listesine giren bir siteyi HTTP üzerinden erişilebilir kılmak oldukça güçleşmektedir.
HSTS Kullanırken Dikkat Edilmesi Gerekenler
HSTS (HTTP Strict Transport Security) kullanırken dikkat edilmesi gerekenler aşağıdakilerdir:
- Geçerli SSL Sertifikası Zorunluluğu: HSTS aktifken sitenin her zaman geçerli ve doğru yapılandırılmış bir SSL sertifikası ile HTTPS üzerinden yayın yapması gereklidir. Sertifika süresinin dolması veya doğrulama hatası durumunda tarayıcı siteye erişimi engeller, bu da kullanıcıların siteye ulaşamamasına yol açar.
- Yanlış Konfigürasyon Riski: max-age değerinin çok yüksek veya yanlış ayarlanması, ya da preload (ön yükleme) seçeneğinin hatalı kullanımı, tarayıcı tarafından uzun süreli erişim sorunlarına neden olabilir.
- Preload Listesi Kısıtları: Preload listesine alınan siteler için teknik kriterler sağlanmalı ve listeden çıkmak karmaşık ve uzun süreç gerektirir. Listeye alınmış bir site için değişikliklerin tarayıcılarca güncellenmesi zaman alır, bu da kontrolü zorlaştırır.
- Test Ortamları ile Uyumsuzluk: HSTS, HTTP bağlantısının gerektiği test ve geliştirme ortamlarında sorun yaratabilir. Bu nedenle, geliştirme aşamasında kullanımına dikkat edilmeli veya geçici olarak devre dışı bırakılmalıdır.
- Önbellek Temizliği Gerekliliği: max-age çok yüksekse veya altyapıda değişiklik yapıldıysa, kullanıcıların tarayıcılarındaki HSTS kayıtlarının manuel temizlenmesi gerekebilir, bu da son kullanıcılar için zorluk çıkarabilir.
- Düzenli Kontrol ve Güncelleme: HSTS ayarları, site değişikliklerine göre düzenli gözden geçirilmeli ve güncellenmelidir. Yanlış ayarlar veya kaldırma işlemleri uzun süreli erişim problemleri yaratabilir.
- Tüm İçeriklerin HTTPS Olması: Site üzerindeki tüm sayfa ve kaynakların HTTPS üzerinden erişilebilir olması zorunludur çünkü HTTP içerik HSTS ile çelişir.
HSTS ile İlgili Sıkça Sorulan Sorular
HSTS SEO’ya katkı sağlar mı?
HSTS, SEO açısından çeşitli avantajlar sunar. Kullanıcı adres çubuğuna “http” ile başlayan bir adres yazsa bile tarayıcı isteği otomatik olarak HTTPS’ye çevirir. Bu durum yönlendirmelerde kaybolan süreyi ortadan kaldırarak sayfa açılış hızını artırır. Sayfa hızındaki bu iyileşme hem kullanıcı deneyimine olumlu yansır hem de arama motorları tarafından değerlendirilen SEO kriterleri arasında sitenize avantaj sağlar.
HSTS tüm tarayıcılarla uyumlu mu?
Güncel sürümleri kullanılan Chrome, Firefox, Safari ve Edge gibi popüler tarayıcıların tamamı HSTS’yi desteklemektedir. Ancak çok eski tarayıcı sürümlerinde ya da güncelleme almayan bazı platformlarda bu destek sınırlı olabilir. Dolayısıyla sitenizin kullanıcı kitlesi eski cihaz ve yazılım kullananlardan oluşuyorsa, bu noktayı göz önünde bulundurmanız gerekir.
HSTS kapatılabilir mi?
HSTS kaydını kapatmak için tarayıcının belleğinde tutulan ilgili verinin silinmesi gerekir. Bu işlem her tarayıcıda farklı yöntemlerle yapılır. Örneğin Google Chrome üzerinde chrome://net-internals/#hsts sayfasına giderek belirli bir alan adının HSTS kaydı manuel olarak temizlenebilir. Firefox ve Edge gibi tarayıcılarda ise site verileri ve güvenlik kayıtları gelişmiş ayarlar bölümünden kaldırılabilmektedir.
Eğer alan adı preload listesine eklenmişse, bu kaydı tamamen kapatmak mümkün değildir. Bu durumda hstspreload org üzerinden listeden çıkarılma talebinde bulunmak gerekir. Ayrıca sunucu tarafında Strict-Transport-Security başlığının kaldırılması ve HTTP yönlendirme politikalarının devre dışı bırakılması zorunludur.

