HSTS Preload, Content-Security-Policy (CSP), Permissions-Policy ve Cross-Origin Isolation başlıklarıyla sitenizi XSS, Clickjacking ve veri sızıntılarına karşı güçlendirin.
2026 OWASP standartlarında HSTS, CSP, Permissions-Policy ve Cross-Origin başlıklarını oluşturun.
SecurityHeaders.com ve Mozilla Observatory testlerinde beklenen uyumluluk derecesi.
# /etc/nginx/conf.d/security-headers.conf (veya server {} blogu icine)
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self' https: 'unsafe-inline'; style-src 'self' https: 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data: https:; connect-src 'self' https:; frame-ancestors 'self'; object-src 'none'; base-uri 'self';" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=(), usb=()" always;
add_header Cross-Origin-Opener-Policy "same-origin" always;
add_header Cross-Origin-Resource-Policy "same-origin" always;| Başlık Adı | Değer | Amaç & Koruma |
|---|---|---|
| Strict-Transport-Security | max-age=63072000; includeSubDomains; preload | Tarayiciyi her zaman HTTPS kullanmaya zorlar, SSL stripping ve MITM saldirilarini onler. |
| X-Content-Type-Options | nosniff | Tarayicinin dosya MIME turlerini tahmin etmesini (sniffing) engelleyerek zararli script calistirilmasini durdurur. |
| X-Frame-Options | SAMEORIGIN | Sitenin baska bir sitede iframe icine alinmasini engelleyerek Clickjacking saldirilarini onler. |
| Referrer-Policy | strict-origin-when-cross-origin | Dis baglantilara tiklandiginda hangi URL bilgilerinin iletilecegini kisitlayarak veri sizintisini onler. |
| Content-Security-Policy | default-src 'self'; script-src 'self' https: 'unsafe-inline'; style-src 'self' https: 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data: https:; connect-src 'self' https:; frame-ancestors 'self'; object-src 'none'; base-uri 'self'; | XSS ve veri enjeksiyonu saldirilarina karsi tarayicida calisabilecek script ve kaynaklari kisitlar. |
| Permissions-Policy | camera=(), microphone=(), geolocation=(), payment=(), usb=() | Tarayici donanim erisimlerini (kamera, mikrofon, konum) devre disi birakarak gizliligi korur. |
| Cross-Origin-Opener-Policy | same-origin | Pencereyi diger sekmelerden izole ederek Spectre ve side-channel saldirilarini engeller. |
| Cross-Origin-Resource-Policy | same-origin | Statik kaynaklarin yalnizca kendi siteniz tarafindan yuklenmesini saglar. |
Sitenize uyguladıktan sonra terminalinizden başlıkları anında test edin:
curl -sI https://alanadiniz.com | grep -iE 'strict-transport|content-security|x-content-type|permissions-policy|referrer-policy'Güvenlik başlıkları (Security Headers), web sunucunuzun istemci tarayıcıya sitenizin sayfalarını nasıl işlemesi gerektiğini bildirdiği HTTP yönergeleridir. Uygulama kodunda tek bir satır dahi değiştirmeden, tarayıcının yerleşik güvenlik mekanizmalarını devreye sokarak tüm bir güvenlik açığı sınıfını (XSS, Clickjacking, Protocol Downgrade) engeller.
Standart bir kullanıcı adres çubuğuna “siteadi.com” yazdığında tarayıcı ilk isteği şifresiz HTTP (Port 80) üzerinden gönderir. Saldırganlar bu ilk istekte araya girerek (SSL Stripping) şifreli HTTPS'e geçişi engelleyebilir.includeSubDomains; preload parametreleriyle 2 yıllık HSTS tanımlandığında alan adınız Chrome ve Safari'nin yerleşik çekirdeğine kaydedilir ve kullanıcılar istese dahi hiçbir zaman HTTP bağlantısı kurulamaz.
Eski tarayıcılarda kullanılan X-XSS-Protection başlığı, modern Chrome ve Edge motorlarında terk edilmiştir. Bazı durumlarda tarayıcının hatalı filtresi nedeniyle yeni yan kanal açıklarına yol açtığı tespit edilmiştir. 2026 OWASP yönergeleri uyarınca bu başlık yerine güçlü bir Content-Security-Policy (CSP) kullanılmalıdır.