HTTP security header'ları nedir?
Kısa cevap
HTTP security header'ları, sunucunun yanıtla birlikte gönderdiği ve tarayıcıya içeriği nasıl yorumlayıp çalıştıracağını söyleyerek istemci tarafı saldırıları sınırlayan header'lardır: Content-Security-Policy hangi kaynakların yüklenebileceğini, X-Frame-Options sayfanın iframe içinde gösterilip gösterilemeyeceğini, Strict-Transport-Security (HSTS) siteye yalnızca HTTPS ile bağlanılmasını, X-Content-Type-Options MIME sniffing'i, Referrer-Policy Referer bilgisinin ne kadarının paylaşılacağını belirler. TR7'de bu header'lar Manage HTTP Security Headers aksiyonunun Response Headers listesinden seçilir ve her biri sabit bir değerle Kurum Servisinden gelen yanıtlara eklenir; aynı listedeki Remove Server Fingerprints(Server, X-Powered-By etc.) seçeneği sunucu bilgisi veren header'ları kaldırır. HSTS ayrıca TLS Security Profile'daki HSTS (Strict-Transport-Security header) seçeneğiyle, süresi ayarlanabilir biçimde verilebilir.
TR7'de Nerede Kullanılır
| Nerede | Alan / etiket | Ne için |
|---|---|---|
| Load Balancer → Actions (Policy Actions) → Manage HTTP Security Headers formu | Response Headers | Eklenecek header'ları ya da sunucu bilgisi temizliğini seçme |
| Load Balancer → Load Balancer vService List → HTTP vService formu | Actions | Aksiyonu vService'e bağlama |
| Certificates & PKI → TLS Security Profiles → profil formu → Frontend-only Settings | HSTS (Strict-Transport-Security header) (varsayılan kapalı), HSTS Duration (max-age) (varsayılan 180 gün) | HSTS'yi profil üzerinden, süresi seçilerek verme |
Response headers Seçenekleri
Response Headers listesindeki seçenekler ve yanıta yazılan değerler:
| Seçenek (arayüz etiketi) | Yanıta yazılan | Sınırladığı risk |
|---|---|---|
| Content-Security-Policy ("default-src 'self'" ) | Content-Security-Policy: default-src 'self'; | XSS ve içerik enjeksiyonu (Content-Security-Policy (CSP) nedir?) |
| Strict-Transport-Security (HSTS) ( "max-age=16000000; includeSubDomains; preload; ") | max-age=16000000; includeSubDomains; preload; (yalnızca TLS bağlantılarında) | Şifresiz bağlantıya düşürülme (HSTS nedir?) |
| X-Frame-Options ("SAMEORIGIN") | X-Frame-Options: SAMEORIGIN | Clickjacking (X-Frame-Options nedir?) |
| X-XSS-Protection ("1; mode=block") | X-XSS-Protection: 1; mode=block | Eski tarayıcıların yerleşik XSS filtresini açma |
| X-Content-Type-Options ("nosniff") | X-Content-Type-Options: nosniff | MIME sniffing (X-Content-Type-Options: nosniff nedir?) |
| Referrer-Policy (no-referrer-when-downgrade) | Referrer-Policy: no-referrer-when-downgrade | HTTPS'ten HTTP'ye geçişte Referer sızması (Referer header ve Referrer-Policy nedir?) |
| Permissions-Policy ( interest-cohort=(); ) | Yalnızca interest-cohort=(); politikası; konum, kamera, mikrofon gibi tarayıcı izinlerini kısıtlamaz | - |
| Remove Server Fingerprints(Server, X-Powered-By etc.) | Server, X-Powered-By, X-AspNet-Version, X-AspNetMvc-Version silinir | Sunucu yazılımı ve sürümünün açığa çıkması |
Değerler sabittir; farklı bir değer gerekiyorsa header Set HTTP Header aksiyonuyla yanıt aşamasında yazılır. Aksiyon yalnızca Kurum Servisinden gelen yanıtlara uygulanır; TR7'nin kendi ürettiği yanıtlar (engelleme ve hata sayfaları, redirect'ler) bu header'ları almaz. Uygulama adımları: Güvenlik header'larını (CSP, HSTS, X-Frame-Options) backend'e dokunmadan ekleyebilir miyim? · Server, X-Powered-By gibi sunucu bilgisi veren header'ları nasıl gizlerim?
Sık Karıştırılan Noktalar
- "Security header'ları sunucuyu korur." Tarayıcıdaki kullanıcıyı korurlar; sunucuya gelen saldırılar için WAF gerekir.
- "Bütün seçenekleri birlikte açmak risksizdir." Özellikle
default-src 'self'dış CDN'den, analiz servisinden ya da inline script'ten gelen içeriği engelleyebilir; seçenekler önce test ortamında denenir. - "Kurum Servisi aynı header'ı zaten gönderiyorsa çift header oluşmaz." Content-Security-Policy, Strict-Transport-Security, X-Frame-Options ve Referrer-Policy Kurum Servisinin değerinin yerine yazılır; X-XSS-Protection ve X-Content-Type-Options ise mevcut header'ın yanına eklenir (mevcut başlıkların üzerine yazılması).
- "HSTS hem aksiyonda hem TLS Security Profile'da açıksa iki header gider." Aksiyondaki HSTS seçiliyse onun değeri geçerli olur, profil ayarı uygulanmaz.
Dokümantasyonda nasıl yapılır
