Web sitenizin başlıklarını anında ve kolayca keşfedin.
Günümüz dijital çağında, web sitesi güvenliği her zamankinden daha kritik bir hale gelmiştir. Kullanıcıların verilerini korumak, sitenizin itibarını sağlamak ve arama motoru sıralamalarında avantaj elde etmek için HTTPS kullanımı artık bir standarttır. Ancak, HTTPS kullanmak tek başına yeterli değildir; kullanıcıların her zaman güvenli bağlantı üzerinden sitenize eriştiğinden emin olmanız gerekir. İşte burada HTTP Strict Transport Security (HSTS) devreye girer. HSTS, tarayıcılara sitenizin her zaman HTTPS üzerinden yüklenmesi gerektiğini söyleyen bir güvenlik politikasıdır ve Man-in-the-Middle (MITM) saldırılarına karşı ek bir koruma katmanı sağlar.
Peki, bu kadar önemli bir güvenlik mekanizmasını sitenizde doğru bir şekilde uyguladığınızdan nasıl emin olabilirsiniz? Bu makalede, HSTS başlığınızın doğru yapılandırıldığını ve çalıştığını doğrulamak için kullanabileceğiniz çeşitli yöntemleri adım adım inceleyeceğiz. Doğru bir HSTS uygulaması, sitenizin SSL/TLS güvenlik katmanını güçlendirir ve ziyaretçilerinizin potansiyel güvenlik risklerinden korunmasına yardımcı olur.
HSTS veya HTTP Strict Transport Security, tarayıcılara belirli bir web sitesine yalnızca şifreli bir HTTPS bağlantısı üzerinden erişmeleri gerektiğini bildiren bir web güvenlik politikası mekanizmasıdır. Bu politika, bir sunucu tarafından HTTP yanıt başlığı olarak gönderilir ve tarayıcı tarafından belirli bir süre boyunca ( `max-age` değeriyle belirtilen) önbelleğe alınır.
HSTS'nin temel amacı, SSL stripping ve kurumsal ağlardaki pasif dinleme gibi saldırı türlerini önlemektir. Normalde, bir kullanıcı sitenize "http://örnek.com" yazarak eriştiğinde, tarayıcı önce HTTP üzerinden bağlantı kurmaya çalışır, ardından sunucu tarafından HTTPS'ye yönlendirilir. Bu küçük zaman aralığı, bir saldırganın araya girerek kullanıcının HTTP bağlantısını ele geçirmesi için yeterli olabilir. HSTS, bu ilk HTTP isteğini ortadan kaldırır ve tarayıcının doğrudan HTTPS bağlantısı kurmasını zorlar. Bu sayede, tarayıcılar sitenizle yalnızca güvenli kanallar üzerinden iletişim kurar ve kötü niyetli müdahaleleri engeller. Bu durum, özellikle halka açık Wi-Fi ağları gibi güvensiz ortamlarda güvenlik için kritik bir öneme sahiptir.
HSTS uygulamanızın başarılı olup olmadığını kontrol etmek için kullanabileceğiniz birden fazla yöntem bulunmaktadır. Bu yöntemler, farklı düzeylerde teknik bilgi gerektirse de, her biri sitenizin güvenlik duruşu hakkında değerli bilgiler sunar.
En erişilebilir ve hızlı doğrulama yöntemlerinden biri, modern web tarayıcılarının sunduğu geliştirici araçlarını kullanmaktır. Bu araçlar, bir web sayfasının nasıl yüklendiği ve sunucuyla nasıl iletişim kurduğu hakkında kapsamlı bilgiler sağlar.
* Adım 1: Web Sitenizi Ziyaret Edin. Tarayıcınızda (Chrome, Firefox, Edge vb.) HSTS'sini kontrol etmek istediğiniz web sitesini ziyaret edin.
* Adım 2: Geliştirici Araçlarını Açın.
* Çoğu tarayıcıda `F12` tuşuna basarak veya sağ tıklayıp "İncele" (Inspect) seçeneğini seçerek geliştirici araçlarını açabilirsiniz.
* Adım 3: Ağ Sekmesine Gidin. Geliştirici araçları panelinde "Ağ" (Network) sekmesine tıklayın. Bu sekme, sayfa yüklenirken yapılan tüm HTTP isteklerini ve yanıtlarını gösterir.
* Adım 4: Sayfayı Yenileyin. Ağ sekmesi açıkken sayfayı yenileyin (`Ctrl+R` veya `Cmd+R`). Bu, tarayıcının sunucuyla yeniden iletişim kurmasını sağlar ve tüm HTTP başlıklarının yakalanmasını mümkün kılar.
* Adım 5: İlk İsteği İnceleyin. Genellikle, web sitesi alan adınızla başlayan ilk isteği seçin. Bu, sitenizin ana sayfası için yapılan istektir.
* Adım 6: Yanıt Başlıklarını Kontrol Edin. Sağ panelde "Başlıklar" (Headers) sekmesini bulun. Burada, sunucudan gelen yanıt başlıkları listelenecektir. `Strict-Transport-Security` adlı bir başlık arayın.
* Eğer bu başlığı görüyorsanız, HSTS başarılı bir şekilde ayarlanmıştır.
* Başlığın değerini kontrol edin. `max-age` değeri ve `includeSubDomains` (varsa) direktifi doğru yapılandırılmış olmalıdır. Örneğin: `Strict-Transport-Security: max-age=31536000; includeSubDomains`
Birçok web tabanlı araç, sitenizin HSTS ve diğer güvenlik başlıklarını kontrol etmek için tasarlanmıştır. Bu araçlar, genellikle kapsamlı raporlar sunar ve basit bir alan adı girişiyle çalışır. Bu yöntem, derinlemesine bir web sitesi denetimi için harikadır.
* HSTSPreload.org: Bu araç, sitenizin HSTS preload listesine uygun olup olmadığını kontrol etmek için özel olarak tasarlanmıştır. Alan adınızı girin ve sitenizin preload listesine eklenebilirlik kriterlerini karşılayıp karşılamadığını görün. Preload listesi hakkında daha fazla bilgiyi aşağıda bulabilirsiniz.
* SSL Labs (Qualys SSL Labs): Genellikle SSL/TLS sertifikalarını analiz etmek için kullanılır, ancak aynı zamanda HSTS başlığını da kontrol eder ve sertifika yapılandırmanızla birlikte genel bir güvenlik notu sunar.
* SecurityHeaders.com: Bu araç, sitenizin diğer önemli güvenlik başlıklarıyla birlikte HSTS başlığını da tarar ve genel güvenlik duruşunuz hakkında bir notlandırma yapar. HSTS'nin yanı sıra Content Security Policy (CSP), X-Frame-Options gibi başlıkların varlığını ve doğruluğunu kontrol etmek için idealdir.
Bu araçlar, tek bir kontrol noktasından daha fazlasını sunar ve HSTS yapılandırmanızın sektör standartlarına ne kadar uygun olduğunu gösterir.
Geliştiriciler ve sistem yöneticileri için komut satırı araçları, hızlı ve programlanabilir bir doğrulama yöntemi sunar. `curl` gibi araçlar, doğrudan HTTP yanıt başlıklarını almak için kullanılabilir.
* Curl Kullanımı: Terminal veya komut istemcinizi açın ve aşağıdaki komutu çalıştırın (alan adınızı kendi sitenizle değiştirin):
```bash
curl -I https://www.orneksite.com
```
Buradaki `-I` bayrağı, yalnızca HTTP yanıt başlıklarını almak için kullanılır. Çıktıda `Strict-Transport-Security` başlığını arayın.
```
HTTP/2 200
date: Mon, 15 Apr 2024 10:00:00 GMT
content-type: text/html; charset=utf-8
strict-transport-security: max-age=31536000; includeSubDomains; preload
server: Caddy
...
```
Yukarıdaki çıktıya benzer bir sonuç alıyorsanız, HSTS başlığınız doğru bir şekilde ayarlanmış demektir.
HSTS başlığını doğrulamak sadece var olup olmadığını kontrol etmekten ibaret değildir; aynı zamanda başlığın içindeki parametrelerin de doğru yapılandırıldığından emin olmak gerekir.
`Strict-Transport-Security` başlığının en önemli parametresi `max-age`'dir. Bu değer, tarayıcının siteyi HTTPS üzerinden ziyaret etmesi gerektiğini hatırlayacağı süreyi saniye cinsinden belirtir.
* Anlamı: Örneğin, `max-age=31536000` 1 yıla eşittir (60 saniye * 60 dakika * 24 saat * 365 gün).
* Önerilen Değerler: Güvenlik uzmanları genellikle uzun bir `max-age` değeri (örneğin, 6 ay ile 2 yıl arası) önermektedir. HSTS preload listesine girebilmek için en az 1 yıl (31536000 saniye) olması şarttır.
* Riskler: Çok kısa bir `max-age` değeri, tarayıcının HSTS politikasını sık sık unutmasına neden olabilir ve bu da sitenizin güvenlik avantajlarını azaltır. Ancak, HSTS'yi yeni uyguluyorsanız, yanlış bir yapılandırma durumunda geri alma şansı için başlangıçta daha kısa bir süre (örneğin, 5 dakika) ile test etmek akıllıca olabilir.
Bu isteğe bağlı direktif, HSTS politikasının sadece ana alan adı için değil, aynı zamanda tüm alt alan adları (örneğin, blog.orneksite.com, mail.orneksite.com) için de geçerli olmasını sağlar.
* Önemi: Tüm alt alan adlarınızın HTTPS üzerinden sunulduğundan eminseniz, `includeSubDomains` direktifini eklemek, tüm site ekosisteminizin güvenli bağlantı altına alınmasını sağlar. Bu, potansiyel saldırı yüzeylerini önemli ölçüde azaltır.
* Dikkat Edilmesi Gerekenler: Eğer alt alan adlarınızdan herhangi biri HTTPS üzerinden sunulamıyorsa veya geçersiz bir SSL/TLS sertifikasına sahipse, `includeSubDomains` kullanmaktan kaçınmalısınız. Aksi takdirde, bu alt alan adlarına erişim tamamen engellenecektir.
`preload` direktifi, tarayıcıların sitenizi daha hiç ziyaret etmemiş olsalar bile, sitenizin HSTS politikasıyla ilgili bilgi sahibi olmasını sağlar. Bu, genellikle HSTS preload listesi olarak bilinen, Google tarafından sürdürülen global bir listeye sitenizi ekleyerek yapılır.
* İşlevi: `preload` direktifi, sitenizin Google'ın resmi HSTS preload listesine dahil edilmek üzere aday olduğunu gösterir. Bu listedeki siteler, tarayıcılara hardcode edilmiş olarak gelir ve böylece ilk ziyarette bile HSTS koruması sağlanır. Bu, "ilk ziyaret" güvenlik açığını tamamen ortadan kaldırır.
* Nasıl Eklenir: Sitenizi bu listeye eklemek için belirli kriterleri karşılamanız gerekir (uzun bir `max-age` değeri, `includeSubDomains` kullanımı, tüm alan adlarının HTTPS üzerinden erişilebilir olması vb.). Sitenizi https://hstspreload.org/ adresinden doğrulayabilir ve gönderim yapabilirsiniz.
* Önemi: HSTS preload listesine dahil olmak, sitenizin güvenlik duruşunu en üst düzeye çıkarmanın en etkili yollarından biridir ve kritik güvenlik önlemlerinden biridir.
HSTS'nin yanlış yapılandırılması, sitenize erişimi engelleyebilir veya beklenen güvenlik faydalarını sağlayamayabilir. İşte sıkça karşılaşılan hatalar ve çözümleri:
* HSTS'nin Sadece HTTP Üzerinden Gönderilmesi: `Strict-Transport-Security` başlığı YALNIZCA HTTPS yanıtları üzerinden gönderilmelidir. Eğer bir kullanıcı HTTP üzerinden erişmeye çalıştığında bu başlığı alıyorsa, bu bir hatadır ve tarayıcının politikayı yanlış anlamasına neden olabilir.
* `max-age` Değerinin Çok Düşük Olması: Yukarıda belirtildiği gibi, kısa bir `max-age` tarayıcının HSTS politikasını sık sık unutmasına neden olur. Uzun süreli koruma için uygun bir değer belirleyin.
* `includeSubDomains`'in Atlanması veya Yanlış Kullanılması: Eğer tüm alt alan adlarınız HTTPS kullanıyorsa, bu direktifi eklemeyi unutmayın. Ancak, bir alt alan adınızın SSL/TLS sertifikası yoksa veya hatalıysa, bu direktifi KULLANMAYIN, aksi takdirde o alt alan adlarına erişim tamamen kesilecektir.
* Geçersiz SSL/TLS Sertifikasıyla HSTS Kullanımı: HSTS, tarayıcıları sitenize HTTPS üzerinden bağlanmaya zorladığı için, sitenizin geçerli ve güvenilir bir SSL/TLS sertifikasına sahip olması zorunludur. Eğer sertifikanız geçersizse, HSTS politikası nedeniyle kullanıcılar sitenize hiç erişemez. Bu durumda, öncelikle sertifika sorunlarını gidermeniz gerekir. SSL/TLS sertifikası kurulumu ve yönetimi hakkında daha fazla bilgi için [ilgili makalemizi okuyabilirsiniz](https://www.ornekblog.com/ssl-tls-sertifikasi-kurulumu-yonetimi-rehberi).
* HTTP'den HTTPS'ye Yönlendirmenin Eksikliği veya Yanlış Yapılandırması: HSTS yalnızca tarayıcının HTTPS'ye geçmesini sağlasa da, sunucunuzun HTTP isteklerini doğru bir şekilde HTTPS'ye yönlendirmesi hala önemlidir. Bu, HSTS'nin devreye girmesinden önce bile doğru yönlendirmenin yapılmasını sağlar.
HSTS'yi sitenizde doğru bir şekilde uygulamak, bir dizi önemli fayda sağlar:
* Artan Web Sitesi Güvenliği: Man-in-the-Middle (MITM) saldırılarına ve SSL stripping gibi tehditlere karşı güçlü bir savunma sağlar. Kullanıcılarınızın her zaman güvenli bağlantı üzerinden sitenizle etkileşim kurmasını garanti eder.
* SSL/TLS Trafiğinin Zorunlu Kılınması: Sitenizin her zaman şifreli bir bağlantı üzerinden erişilmesini garanti eder, bu da veri bütünlüğünü ve gizliliğini artırır.
* Gelişmiş Performans: Tarayıcıların her seferinde HTTP'den HTTPS'ye yönlendirme yapmasına gerek kalmadığı için, sayfa yükleme süreleri üzerinde küçük de olsa olumlu bir etkisi olabilir.
* SEO Faydaları: Google, HTTPS'i bir sıralama faktörü olarak kabul etmektedir. HSTS uygulamak, sitenizin HTTPS uyumluluğunu pekiştirerek arama motoru optimizasyonu açısından ek bir avantaj sağlayabilir. Daha iyi bir web sitesi performansı ve SEO için [bu makalemizi inceleyebilirsiniz](https://www.ornekblog.com/web-sitesi-performansi-seo-ipuclari).
* Kullanıcı Güveni: Kullanıcılar, sitelerinin her zaman güvenli olduğunu bilmekten emin olurlar, bu da sitenizin markasına ve hizmetlerine olan güveni artırır.
HTTP Strict Transport Security (HSTS), modern web güvenliği altyapısının vazgeçilmez bir parçasıdır. Sitenizi potansiyel tehditlere karşı korumak ve kullanıcılarınız için güvenli bir gezinme deneyimi sağlamak amacıyla doğru bir şekilde uygulanması ve düzenli olarak doğrulanması büyük önem taşır. Tarayıcı geliştirici araçları, çevrimiçi HSTS kontrol araçları ve komut satırı komutları gibi çeşitli yöntemlerle HSTS başlığınızın varlığını, `max-age` ve `includeSubDomains` parametrelerinin doğruluğunu kontrol etmek, web sitesi denetimi rutininizin bir parçası olmalıdır. Özellikle HSTS preload listesine dahil olmak, sitenizin güvenlik seviyesini en üst düzeye çıkaracaktır. Unutmayın, dijital dünyada güvenlik statik bir durum değildir; sürekli izleme ve güncellemeler gerektirir.