HSTS (HTTP Sıkı Aktarım Güvenliği)

E-posta ve Güvenlik
Tarayıcıları bir web sitesine yalnızca HTTPS üzerinden bağlanmaya zorlayan ve protokol düşürme saldırılarını önleyen güvenlik başlığı.
← Sözlüğe Dön

HSTS nedir?

HSTS (HTTP Strict Transport Security), tarayıcılara bir web sitesiyle yalnızca HTTPS üzerinden, hiçbir zaman HTTP üzerinden iletişim kurmalarını söyleyen bir web güvenlik mekanizmasıdır. Tarayıcı bir HSTS başlığı gördüğünde, kullanıcı açıkça http:// yazsa bile gelecekteki tüm istekleri otomatik olarak HTTPS'ye yükseltir ve düz HTTP üzerinden bağlantı kurulmasını reddeder.

HSTS neden önemlidir?

Geçerli bir SSL sertifikası olsa bile güvenlik açıkları bulunabilir:

SSL Stripping saldırısı

1. Kullanıcı "example.com" yazar (https:// yoktur)

2. Saldırgan ilk HTTP isteğini ele geçirir

3. Saldırgan HTTPS'ye proxy'ler ve kullanıcıya HTTP sunar

4. Kullanıcı güvende olduğunu düşünür, ancak saldırgan tüm verileri görür

HSTS, tarayıcıların bu ilk HTTP isteğini hiçbir zaman göndermemesini sağlayarak bunu önler.

HSTS'nin faydaları

HSTS başlık sözdizimi

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

Yönergeler

YönergeAçıklama
max-ageHSTS'nin hatırlanacağı saniye sayısı (31536000 = 1 yıl)
includeSubDomainsHSTS'yi tüm alt alan adlarına uygular
preloadTarayıcının önyükleme listesine dahil edilmesini kabul eder

HSTS uygulama

Nginx

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

Apache

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

Cloudflare

SSL/TLS → Edge Certificates → HTTP Strict Transport Security bölümünde etkinleştirin

Express.js

const helmet = require('helmet');

app.use(helmet.hsts({

maxAge: 31536000,

includeSubDomains: true,

preload: true

}));

HSTS önyükleme listesi

HSTS önyükleme listesi, tarayıcılarda sabit kodlanmış ve yalnızca HTTPS üzerinden erişilmesi gereken alan adlarının listesidir. Bu liste, ilk HTTP isteğiyle ilgili açığı bile ortadan kaldırır.

Önyükleme gereksinimleri

1. Geçerli SSL sertifikası

2. Tüm HTTP trafiğini HTTPS'ye yönlendirme

3. Şu özelliklere sahip HSTS başlığı:

- En az 31536000 max-age (1 yıl)

- includeSubDomains yönergesi

- preload yönergesi

4. Tüm alt alan adları HTTPS'yi desteklemelidir

Önyükleme listesine gönderme

1. Gereksinimleri doğrulayın: Kontrol için hstspreload.org'u kullanın

2. Alan adını gönderin: Alan adını hstspreload.org'a girin

3. Dahil edilmeyi bekleyin: Tarayıcı güncellemeleri haftalar veya aylar sürebilir

Önyükleme uyarıları

Önyükleme pratikte kalıcıdır. Listeden çıkarılmak aylar sürer ve tarayıcı güncellemeleri gerektirir. Tüm alt alan adlarının süresiz olarak HTTPS'yi destekleyeceğinden emin değilseniz önyükleme yapmayın.

HSTS'yi kontrol etme

Tarayıcı Geliştirici Araçları:

1. Geliştirici Araçları → Network sekmesini açın

2. Siteyi yükleyin

3. Yanıt başlıklarında Strict-Transport-Security'yi kontrol edin

curl kullanarak:
curl -I https://example.com | grep -i strict
DomScan kullanarak:
curl "https://domscan.net/v1/health?domain=example.com"

# Reports hasHSTS in security details

Önyükleme durumu:

Bir alan adının önyüklenip önyüklenmediğini görmek için hstspreload.org'u kontrol edin.

HSTS dağıtım stratejisi

Aşama 1: Kısa max-age

Test etmek için kısa bir max-age ile başlayın:

Strict-Transport-Security: max-age=300

Bir şey bozulursa kullanıcıların önbelleğinde yalnızca 5 dakika kalır.

Aşama 2: Süreyi artırma

HTTPS'nin her yerde çalıştığını doğruladıktan sonra:

Strict-Transport-Security: max-age=86400

Aşama 3: Alt alan adlarını ekleme

Tüm alt alan adları HTTPS'yi desteklediğinde:

Strict-Transport-Security: max-age=2592000; includeSubDomains

Aşama 4: Tam dağıtım ve önyükleme

Aylar süren kararlı çalışmanın ardından:

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

Ardından önyükleme listesine gönderin.

Yaygın HSTS sorunları

HTTPS'si olmayan alt alan adı: includeSubDomains bu alt alan adını kullanılamaz hâle getirir Geliştirme ortamları: Üretimde önbelleğe alınan HSTS yerel geliştirmeyi bozar CDN/proxy başlıkları: HSTS başlığının aracı sistemler tarafından kaldırılmadığından emin olun Karma içerik: Tüm kaynaklar HTTPS olmalıdır; HSTS gömülü HTTP kaynaklarını düzeltmez

HSTS, hassas veriler işleyen tüm web siteleri için temel gerekliliktir ve tüm HTTPS siteleri için önemle tavsiye edilir.

Bu Bilgiyi Uygulamaya Koyun

Alan adı uygunluğunu, durumunu ve daha fazlasını kontrol etmek için DomScan API'sini kullanın.