Defaults.Exposed

Defaults.ExposedDüzeltmeler › HSTS (Strict-Transport-Security)

HSTS (Strict-Transport-Security) nasıl düzeltilir

HSTS, web sitenizin her tarayıcıya verdiği tek satırlık talimattır: 'Her zaman güvenli, şifreli bağlantıyla gel — güvensiz olanla asla.' Bu olmadan, paylaşımlı Wi-Fi'da asma kilidiniz sessizce devre dışı bırakılabilir ve sitenize ilk ziyaret tehlikeye atılır.

İşletmeniz için sonuç: HTTPS'ye (asma kilit) sahip olmak ile onu uygulamak aynı şey değildir. HSTS olmadan aynı Wi-Fi'daki saldırgan, müşterinizin sitenize bağlantısını sessizce düz, şifrelenmemiş HTTP'ye düşürebilir — giriş bilgilerini, kart bilgilerini ve form verilerini ekranında hiçbir uyarı göstermeden yakalayabilir. SSL sertifikanız —belki para ödediğiniz— devre dışı bırakılır. Düzeltme ücretsizdir ve web sitenizi çalıştıran kişi için yaklaşık 15 dakika alır.

Bu size ne mal olabilir

Neden önemlidir. HTTPS bir bağlantıyı şifrelendikten sonra korur — ama tarayıcıları onu kullanmaya zorlamaz. Saldırganlar bu boşluğu 'SSL soyma' ile istismar eder: herhangi bir paylaşımlı ağda ziyaretçiyi sessizce güvensiz HTTP'de tutar, her şeyi okurlar. HSTS, tarayıcıya alan adınız için düz HTTP'yi tamamen reddetmesini söyler; uzun süre, böylece ilk ziyaretten sonra boşluk kapanır. Tek bir yanıt başlığı, eklemesi ücretsiz ve puanlamada gerçek puanlar taşır; eksik veya çok kısa değer, genel Wi-Fi'daki her ziyaretçiyi tehlikeye atar.

Sade dille nedir

Büyük olasılıkla HTTPS’e sahipsinizdir — tarayıcı çubuğundaki küçük asma kilit. İyi. Ama neredeyse kimseye söylenmeyen kısmı şudur: HTTPS’ye sahip olmak onu zorunlu kılmakla aynı şey değildir.

HTTPS bir bağlantıyı tarayıcı onu kullanmaya karar verdiğinde şifreler. HSTS — HTTP Strict Transport Security kısaltması — tarayıcının onu her zaman kullanmasını sağlayan talimattır. Web sitenizin her ziyaretçiye gönderdiği tek, görünmez satırdır, etkin olarak şunu söyler:

“Bundan böyle alan adım için yalnızca güvenli bağlantıyla iletişim kur. Asla güvensiz olanla. Deneme bile.”

Tarayıcı bunu hatırlar ve belirttiğiniz süre boyunca — genellikle bir yıl — uyar. Bir ziyaretçinin ilk güvenli ziyaretinden sonra tarayıcısı, bir şey zorlamaya çalışsa bile sitenizi düz, şifrelenmemiş HTTP üzerinden yüklemeyi reddeder.

HSTS olmadan bu “her zaman güvenli sürümü kullan” kuralı yoktur — ve saldırganlar boşluğu tam olarak nasıl istismar edeceklerini bilirler.

Size maliyeti ne olabilir

Bunlar gerçekçi, günlük senaryolardır. Gerçek bir işletmeyi asla adlandırmayız; bunlar boşluğun nasıl kullanıldığının örnekleridir.

  1. Kafe ödeme kasası. Bir müşteri kafe Wi-Fi’sında mağazanızı açar ve ödeme yapmak üzere gider. Aynı ağdaki saldırgan müşteriyi HTTPS yerine düz HTTP’de tutan ücretsiz, iyi bilinen bir araç çalıştırır. Müşteri normal siteniz gibi görünen bir şey görür — uyarı yok, göz atacağı yerde kırık asma kilit yok — ve kart bilgilerini girer. Saldırgan her tuşa basışı okur. SSL sertifikanız hiçbir şey yapmadı, çünkü bağlantının güvenli hale gelmesine hiç izin verilmedi.

  2. Seyahat eden çalışan. Bir personel, otel veya havalimanından yönetim panelinize veya web postanıza giriş yapıyor. Aynı düşürme hilesi kullanıcı adını ve şifresini ele geçiriyor. Şifre politikanız zayıf olmadığı için değil, giriş sayfası güvensiz HTTP üzerinden erişilebildiği için saldırgan artık işletmenize girme yolu bulmuş durumda.

  3. Duran anlaşma. Daha büyük bir müşteri imzalamadan önce standart güvenlik anketini gönderiyor. Bir satır: “Web siteniz HSTS aracılığıyla HTTPS’yi zorunlu kılıyor mu?” BT ilgili kişinizin “hayır” yanıtı vermesi gerekiyor ve şimdi artık kırmızı bayrak gibi görünen ücretsiz, 15 dakikalık ayarı düzeltirken tedarik süreci bekliyor.

  4. Siber sigorta veya uyum kontrolü. Bir sigorta taraması ya da veri koruma duruşunuzu inceleyen bir denetçi, eksik başlığı işaretliyor. Kişisel verilerin şifrelenmesi, veri koruma kuralları kapsamında açık bir beklentidir (GDPR Madde 32) ve “sertifikamız var ama uygulamıyoruz” zayıf bir konumdur.

  5. Yanlış güvenlik hissi. SSL için para ödüyorsunuz, asma kilit gösteriyor ve herkes sitenin güvende olduğunu varsayıyor. Büyük ölçüde öyle — ta ki müşteri paylaşımlı ağda olana kadar; bu tam olarak en savunmasız oldukları ve hiçbir şeyin yanlış olmadığını fark etmelerinin en az muhtemel olduğu andır.

Temel mesaj: maliyet soyut değil. Gerçek bir müşterinin kartı veya girişi, alarm çalmadan en kötü anda ele geçiriliyor.

Teknik olarak nedir

Tarayıcı web sitenizden bir sayfa istediğinde sunucunuz sayfayı artı bazı görünmez “başlıklar” — tarayıcının okuduğu ama ziyaretçinin asla görmediği ekstra talimatlar — gönderir. HSTS bu başlıklardan biridir:

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

Üç parça önemlidir:

”İlk ziyaret”in önemi

HSTS’nin doğasında gelen bir sınırlaması vardır: tarayıcı kuralı yalnızca başlığı en az bir kez gördükten sonra uygular. Dolayısıyla yepyeni bir ziyaretçinin ilk bağlantısı hâlâ küçük bir açık penceredir. İki şey bunu daraltır: HTTP’den HTTPS’ye yönlendirme (onları hızla güvenli sürüme getirir) ve preload (pencereyi tamamen kaldırır). Bu yüzden tam kurulum HSTS’yi uygun yönlendirme ile eşleştirir.

”İyi” nasıl görünür — ve nasıl puanlanır

Kontrolümüz canlı başlığınızı okur ve max-age’i değerlendirir:

max-age değeriNe anlama gelirSonuç
1 yıl veya daha fazla (≥ 31536000)Mükemmel — önerilen ayarTam puan
6 ay veya daha fazla (≥ 15768000)İyi ama tam bir yıl değilKısmi
1 gün veya daha fazla (≥ 86400)Zayıf — güvenilmek için çok kısaDüşük / kısmi
1 günden az veya başlık yokEtkin olarak koruma yokBaşarısız (yüksek önem)

Yani mevcut ama birkaç dakikaya ayarlı başlık başarısız sayılır — yapılandırılmış görünür ama işini yapmaz. Bir yılı hedefleyin. Kontrol aynı zamanda includeSubDomains ve preload’un mevcut olup olmadığını da not eder.

Nasıl düzeltilir (ücretsiz, ~15 dakika)

Bu bölümü web sitenizi çalıştıran kişiye iletin — BT uzmanı, web geliştiriciniz veya barındırma desteği. Düzeltme ücretsizdir. Barındırma platformunuzda tek başlık veya geçiştir. Satın alınacak hiçbir şey yok.

Önce önemli bir sıralama kuralı: HSTS yapışkandır — etkinleştirildiğinde tarayıcılar alan adınız için tam max-age boyunca düz HTTP’yi reddeder. Bu nedenle ana sitenizde ve her alt alan adında HTTPS’nin doğru çalıştığını geniş kapsamlı açmadan önce doğrulayın. Güvenli yol: kısa değerle test edin → hiçbir şeyin bozulmadığını doğrulayın → bir yıla yükseltin.

1. Adım — HTTPS’nin her yerde çalıştığından emin olun

Sitenizi ve temel alt alan adlarınızı https:// üzerinden ziyaret edin ve geçerli sertifikayla temiz yüklediklerini doğrulayın. Ayrıca http:// isteklerinin https://’ye yönlendirildiğini doğrulayın. (Yönlendirmiyorlarsa önce HTTP’den HTTPS’ye yönlendirmeyi düzeltin — HSTS yerine geçtiğini varsayar.)

2. Adım — Başlığı ekleyin (platformunuzu seçin)

Cloudflare (veya benzer CDN): Bu en kolay yoldur. SSL/TLS → Kenar Sertifikaları → HTTP Strict Transport Security (HSTS) bölümüne gidin ve etkinleştirin. Maksimum Yaşı 6 ay veya 12 ay olarak ayarlayın ve tüm alt alan adlarının HTTPS’de olduğundan emin olduktan sonra “HSTS politikasını alt alan adlarına uygula”yı etkinleştirin.

Nginx: HTTPS server bloğunuzun içine ekleyin:

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

Apache: mod_headers’ın etkin olduğundan emin olun, ardından HTTPS sanal barındırıcınıza ekleyin:

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

Microsoft IIS: web.config’de <customHeaders> içine ekleyin:

<add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains; preload" />

Google Workspace / Microsoft 365 notu: Bunlar e-postanızı güçlendiriyor, web sitesi barındırmanızı değil — HSTS, genel web sitenizin gerçekten yaşadığı yer olan (CDN’niz, web sunucunuz veya site oluşturucunuz) ayarlanır, Workspace/365 yöneticisinde değil. Siteniz Squarespace, Wix veya Shopify gibi bir oluşturucudaysa HSTS genellikle sizin için zaten ayarlanmıştır; kontrolümüz bunu işaretliyorsa kontrol platformlarının SSL/güvenlik ayarlarındadır.

3. Adım — Küçük test, ardından taahhüt

max-age=300 (5 dakika) ile başlayın. Sitenin her yerde hâlâ mükemmel yüklendiğini doğrulayın. Ardından max-age=31536000’e (bir yıl) yükseltin. Bu tam puan ayarıdır.

4. Adım (isteğe bağlı, altın standart) — preload

Güvenli olduğunuzdan emin olduğunuzda ve bir süredir includeSubDomains ile bir yıllık başlık çalıştırdıktan sonra, alan adınızı hstspreload.org adresinde tarayıcılara yerleştirilmek üzere gönderebilirsiniz. Bu ilk ziyaret penceresini tamamen kapatır. Bilinçli bir taahhüt olarak değerlendirin — bir alan adını listeden çıkarmak yavaştır.

Yaygın hatalar

SSS

Zaten HTTPS ve asma kilide sahibiz. Bu yeterli değil mi?

Hayır — ve bu en yaygın yanlış anlama. Asma kilit, bir bağlantının şifreli OLABİLECEĞİ anlamına gelir; tarayıcıları şifreli sürümü kullanmaya zorlamaz. HSTS olmadan aynı ağdaki saldırgan ziyaretçiyi düz HTTP'de tutabilir (SSL soyma olarak adlandırılır) ve müşteri normal görünen siteyi görürken yazdığı her şeyi okuyabilir. HSTS 'yalnızca şifreli' ifadesini zorunlu kılan talimattır. HSTS olmadan HTTPS, gerçekte kilitlenmemiş kilitli kapıdır.

Açmak pahalı veya riskli mi?

Düzeltmenin kendisi ücretsiz — web sunucunuzda tek satır veya CDN'de bir geçiş — ve yaklaşık 15 dakika alır. Gerçek önlem şudur: HSTS yapışkandır. Tarayıcı bir kez gördüğünde belirttiğiniz süre boyunca alan adınız için düz HTTP'yi reddeder. Bu nedenle HTTPS'nin ana sitenizde VE her alt alan adında çalıştığından emin olun. Kısa test değeriyle başlayın, hiçbir şeyin bozulmadığını doğrulayın, ardından bir yıla yükseltin. Bu sırayla yapıldığında risk ihmal edilebilir.

'İyi' gerçekte neye benzer?

En az bir yıllık max-age (31536000 saniye). Kontrolümüz bir yıl veya daha fazlasında tam puan, altı ayda kısmi puan, bir günde zayıf/kısmi puan verir ve bir günden kısa her şeyi etkin olarak yok sayar. En güçlü kurulum includeSubDomains (shop.siteniz.com, app.siteniz.com vb.'yi kapsar) ve preload (ilk ziyaret bile güvende) da ekler.

'preload' nedir ve buna ihtiyacımız var mı?

HSTS yalnızca tarayıcı başlığı en az bir kez gördükten SONRA ziyaretçiyi korur — dolayısıyla yepyeni bir ziyaretçinin ilk isteği hâlâ küçük bir açık penceredir. Chrome, Firefox, Safari ve Edge'e yerleşik HSTS ön yükleme listesi, alan adınızı tarayıcılara önceden göndererek bu pencereyi kapatır. İsteğe bağlıdır ve biraz daha büyük bir taahhüttür (kaldırma yavaş), ama altın standart budur. Çoğu küçük işletme için includeSubDomains ile bir yıllık max-age zaten güçlü, güvenli sonuçtur; preload üzerinde karar verildikten sonra ekstra adımdır.

Squarespace / Wix / Shopify'dayız — herhangi bir şey yapmamız gerekiyor mu?

Tam barındırmalı web sitesi oluşturucular (Squarespace, Wix, Shopify ve benzeri) HTTPS'yi zorunlu kılar ve çoğunlukla HSTS'yi sizin için otomatik olarak ayarlar — dolayısıyla yapılacak hiçbir şey olmayabilir. İstisna, önünüzde özel alan adı veya CDN kullandığınızda; o zaman ayar boşluktan düşebilir. Kontrolü çalıştırın: geçiyorsa tamamdır. İşaretliyorsa düzeltme platformunuzun SSL/güvenlik ayarlarındaki geçiş veya CDN'nizdeki tek satırdır.

Düzeltmezsek notumuz düşer mi?

Evet. HSTS, yalnızca bilgilendirme değil, puanlanan bir web güvenlik kontrolüdür — eksik veya çok kısa başlık puan kaybettirir ve yüksek önem derecesiyle değerlendirilir; çünkü paylaşımlı ağlarda ziyaretçilerinizin verilerini doğrudan tehlikeye atar. Aynı zamanda en ucuz kazanılan puanlardan biridir: ücretsiz tek başlık, yaklaşık 15 dakika.