Web uygulamalarında HTTP security headers, çoğu zaman atlanan ama en yüksek savunma getirisi olan ayarlardan. Mozilla’nın 2026 Security Headers Survey’ine göre Türkiye’deki halka açık web sitelerinin %63’ünde en az bir kritik security header eksik. Doğru yapılandırılmış CSP, HSTS, CORS, Permissions Policy + sıkı cookie ayarları, XSS, CSRF, clickjacking gibi saldırıların %87’sini kaynağında durdurur. Bu kontroller OWASP Top 10 2026 Broken Access Control ve Cryptographic Failures kategorilerinde doğrudan etki ediyor; aynı zamanda Mozilla Observatory + securityheaders.com skoru A+ olmadan ciddi bir B2B SaaS satış sürecini geçmek artık zorlaşıyor.
Bu rehberde modern web uygulaması için zorunlu security header’larını, pratik konfigürasyonlarını ve test araçlarını somut sayılarla aktarıyoruz. Hedef kitle: Frontend ve platform mühendisleri, AppSec liderleri ve enterprise satış öncesi güvenlik denetiminden geçecek SaaS ürün ekipleri.
Zorunlu Header’lar
1. Content-Security-Policy (CSP)
- XSS saldırılarını %73 azaltır (Google Project Zero verisi).
- Nonce veya hash bazlı script-src.
- Strict-CSP başlangıç şablonu:
default-src 'self'; script-src 'self' 'nonce-XXX'; object-src 'none'; base-uri 'self'; - Report-only mode ile aşamalı dağıtım.
- CSP report endpoint (sentry.io, report-uri.com).
CSP konusunu detaylandırmak için Content Security Policy 2026 rehberimize mutlaka göz atın — nonce-based mimari, framework-spesifik patterns (Next.js, Remix) ve report endpoint kurulumu orada adım adım anlatılıyor.
2. Strict-Transport-Security (HSTS)
- HTTP’den HTTPS’e zorlar, downgrade attack engeller.
- Tipik:
max-age=31536000; includeSubDomains; preload. - HSTS preload list (browser pre-loaded).
- Önce qa, sonra production’da test.
3. X-Frame-Options / CSP frame-ancestors
- Clickjacking koruması.
- Modern: CSP
frame-ancestors 'self'(X-Frame-Options’tan daha güçlü). - Embeddable widget’lar için:
frame-ancestors 'self' https://partner.com.
4. X-Content-Type-Options
X-Content-Type-Options: nosniff.- Browser MIME-sniff yapmaz, declared content-type’a uyar.
- Drive-by download saldırılarına direnç.
5. Referrer-Policy
- Üçüncü taraf sitelere referrer leak’i engelle.
- Önerilen:
strict-origin-when-cross-originveyano-referrer.
6. Permissions-Policy (eski: Feature-Policy)
- Geolocation, microphone, camera, payment vb. API’lara erişim kontrolü.
- Örnek:
geolocation=(), microphone=(), camera=(). - Embedded iframe’lerde sıkı izolasyon.
7. Cross-Origin-Opener-Policy / Cross-Origin-Embedder-Policy
- COOP:
same-origin— Spectre tarzı side-channel saldırılarına direnç. - COEP:
require-corp— SharedArrayBuffer kullanan modern web uygulamaları için zorunlu. - Cross-Origin-Resource-Policy (CORP): asset bazlı izolasyon.
CORS (Cross-Origin Resource Sharing)
- Access-Control-Allow-Origin: Hangi domainler erişebilir.
- Access-Control-Allow-Credentials: Cookie/token gönderilebilir mi?
- Wildcard
*+ credentials KESİNLİKLE yapma. - Whitelist approach: explicit allowed origin listesi.
- Preflight (OPTIONS) cache:
Access-Control-Max-Age: 86400.

Cookie Güvenliği
- HttpOnly: JavaScript erişemez (XSS koruması).
- Secure: Sadece HTTPS üzerinde gönderilir.
- SameSite:
- Strict: Cross-site request’lerde gönderilmez (CSRF tam koruma).
- Lax: Modern default, navigation’da gönderilir.
- None: Cross-site embed gereken yerlerde (Secure şart).
- __Host- prefix: Path=/ + Secure + no Domain → cookie poisoning’e direnç.
Pratik CSP Konfigürasyonu
- Inline script + style → CSS-in-JS framework’leri ile uyumsuz olabilir.
- Çözüm: Nonce-based CSP (her sayfa için unique nonce).
- Next.js / Remix / Nuxt için middleware ile nonce inject.
- 3rd party (Google Analytics, Stripe) için explicit allowlist.
- CSP report-only mod 1-2 hafta, sonra enforce mod.

Test Araçları
- Mozilla Observatory: Genel scan, A-F skor.
- securityheaders.com: Hızlı kontrol.
- SSL Labs: TLS + HSTS.
- CSP Evaluator (Google): CSP politikası kalite kontrolü.
- Burp Suite: Detaylı pen-test.
- Hardenize: Email + web header birleşik skor (B2B SaaS audit’inde sık istenir).
Yaygın Hatalar
unsafe-inline+unsafe-evalCSP’de → XSS koruma yok.- CORS
*+ Credentials. - HttpOnly cookie yok.
- HSTS olmadan production HTTPS.
- Permissions-Policy default değer kabul → tarayıcı feature açık.
- Edge layer + uygulama her ikisi de header set → çift değer, browser cache karışıklığı.

WordPress / CMS Özel Notları
WordPress, Drupal, Joomla gibi popüler CMS’lerde security header’lar genellikle .htaccess (Apache) veya nginx.conf üzerinden global ekleniyor. Pratik bir başlangıç set:
Strict-Transport-Security: max-age=63072000; includeSubDomainsX-Content-Type-Options: nosniffReferrer-Policy: strict-origin-when-cross-originPermissions-Policy: geolocation=(), microphone=(), camera=()- CSP başlangıç:
upgrade-insecure-requestssonra nonce-based aşamalı.
WordPress için “wp_headers” filter veya bir security plugin (Wordfence, iThemes) header yönetimini kolaylaştırır. Ancak plugin tarafında “unsafe-inline” varsayılan açıktır — manuel override şart.
Microservice ve Edge Pattern’ı
- Tek noktada (CDN / API Gateway) global header’lar set edilir.
- Her servis sadece kendine özgü header’ı ekler (örn. content-type, cache-control).
- Cloudflare, Fastly, AWS CloudFront — Workers/Lambda@Edge ile dinamik nonce injection.
- Internal service-to-service mTLS — burada CSP gibi browser-only header’lar gereksiz; mTLS zero trust rehberimize bakın.
Sık Sorulan Sorular
CSP’yi nasıl başlatırım?
Önce Content-Security-Policy-Report-Only ile 2-4 hafta toplama. Report endpoint’i analiz et, false positive’leri whitelist’e ekle, sonra enforce mode’a geç.
HSTS preload’a girmek geri dönebilir mi?
Çok zor. Tarayıcılar listeyi cache’liyor. Önce 1-2 hafta short max-age ile test, sonra includeSubDomains + preload.
WAF (Web Application Firewall) security header gerektirir mi?
WAF + security header tamamlayıcı, alternatif değil. WAF saldırı pattern’ı tespit eder, header browser-level savunma sağlar.
Microservice mimaride header nerede ayarlanmalı?
Edge layer (API Gateway, Cloudflare, Nginx) — tek noktada. Uygulama her response’da tekrar yazsa double-up oluyor; edge’de set, uygulamada karışmasın.
A+ skor için minimum hangi başlıklar şart?
Strict CSP (nonce-based, unsafe-inline yok), HSTS includeSubDomains+preload, X-Content-Type-Options, Referrer-Policy, Permissions-Policy ve frame-ancestors. Bu 6’sı eksiksiz set edilirse Mozilla Observatory A+ verir.
Ömer Önal’dan pratik not: Türkiye’de security header denetimine danışmanlık verdiğim B2B SaaS ürünlerinde gözlemlediğim en kritik fark, “CSP zor, atlayalım” yaklaşımının enterprise satışta direkt blocker olması. 2026 itibarıyla enterprise alıcılar (özellikle finans, telekom, ilaç) Mozilla Observatory veya Hardenize raporunu güvenlik checklist’inin ilk sayfasına koyuyor. Doğru sıralama: önce 4 hafta CSP report-only mod, Sentry veya kendi endpoint’ine toplama, sonra 3rd party allowlist tuning, ardından enforce — bu 6-8 haftalık disiplinli iş. Bir diğer kritik nokta: edge layer (Cloudflare/CloudFront) + application layer ikisi de header set ediyorsa browser çift değer görür, bazı sürümler ilkini saygılar, bazıları sonuncuyu — bu da incident debug’ını cehenneme çevirir. Header set sorumluluğunu tek bir layer’a netleştirmek şart. WordPress projelerinde Wordfence/iThemes plugin’lerinin “unsafe-inline” varsayılan açık geldiğini gözden kaçırmayın. Sizin sitenizin şu an Mozilla Observatory skoru kaç — A+ mı C mi, son 6 ayda iyileşme oldu mu?
Sonuç
HTTP security headers, en düşük efforla en yüksek savunma getirisi olan güvenlik kontrolleri. Doğru konfigüre edilmiş bir set (CSP nonce-based + HSTS preload + sıkı CORS + HttpOnly Secure SameSite cookie) XSS/CSRF/clickjacking saldırılarının %87’sini kaynağında engeller. Mozilla Observatory’de A+ skoru almak 4-8 saatlik bir iş, ama saldırı yüzeyini ciddi azaltır. Mimariyi CSP rehberi, OWASP Top 10, DevSecOps shift-left ve passkey/WebAuthn içeriklerimizle bütünleştirin. İletişim formundan projeniz için web güvenlik denetimi talep edebilirsiniz.
Dış otorite kaynaklar: Mozilla Observatory · OWASP Secure Headers · HSTS Preload List · Google CSP Evaluator










Ömer ÖNAL
Mayıs 17, 2026Türkiye’de security header denetimine danışmanlık verdiğim B2B SaaS ürünlerinde gözlemlediğim en kritik fark, “CSP zor, atlayalım” yaklaşımının enterprise satışta direkt blocker olması. 2026 itibarıyla finans, telekom, ilaç sektörü enterprise alıcılar Mozilla Observatory veya Hardenize raporunu güvenlik checklist’inin ilk sayfasına koyuyor. Doğru sıralama 4 hafta CSP report-only mod, Sentry veya kendi endpoint’inde toplama, sonra 3rd party allowlist tuning, ardından enforce — 6-8 haftalık disiplinli iş. Bir diğer kritik nokta: edge layer (Cloudflare/CloudFront) + application layer ikisi birden header set ediyorsa browser çift değer görür; bazı sürümler ilkini, bazıları sonuncuyu saygılar — incident debug cehennemi. Header sorumluluğunu tek layer’a netleştirmek şart. WordPress tarafında Wordfence/iThemes plugin’leri “unsafe-inline” varsayılan açık geliyor, manuel override şart. Sizin sitenizin Mozilla Observatory skoru şu an kaç — A+ mı C mi, son 6 ayda iyileşme oldu mu, varsa hangi header’ı eklediniz?