Poyraz Hosting
Dil Türkçe

Otomatik çeviri: Google Translate

HTTP Güvenlik Başlıkları Basitçe: HSTS, CSP, X-Frame-Options ve Diğerleri (NGINX/Apache/Cloudflare Örnekleri)

HTTP Güvenlik Başlıkları Basitçe: HSTS, CSP, X-Frame-Options ve Diğerleri (NGINX/Apache/Cloudflare Örnekleri)

Web uygulamalarında sunucu tarafı güvenlik kadar tarayıcıya gönderdiğiniz HTTP başlıkları da kritiktir. Aşağıda en etkili başlıkları “ne işe yarar + örnek yapılandırma + dikkat” formatında hızlıca toparladım.


1) HSTS — Strict-Transport-Security

Ne yapar? Tarayıcıya, alan adınıza yalnızca HTTPS ile bağlanmasını söyler.

  • Önerilen (başlangıç) değer:

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

Dikkat: Preload’a geçmeden önce tüm alt alanlarınız HTTPS olmalı.

NGINX

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

Apache (.htaccess)

<IfModule mod_headers.c> Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" </IfModule>

Cloudflare: SSL/TLS → Edge Certificates → HSTS (gelişmiş) menüsünden açın.


2) İçerik Güvenlik Politikası — Content-Security-Policy (CSP)

Ne yapar? Hangi kaynaktan hangi tür içeriğin yüklenebileceğini tanımlar; XSS riskini ciddi azaltır.

  • Basit, güvenli bir başlangıç (gerektikçe genişletin):

Content-Security-Policy: default-src 'self'; img-src 'self' data: https:; script-src 'self' https: 'unsafe-inline'; style-src 'self' https: 'unsafe-inline'; connect-src 'self' https:;

Dikkat: Önce Report-Only moduyla test edin.

NGINX

add_header Content-Security-Policy "default-src 'self'; img-src 'self' data: https:; script-src 'self' https: 'unsafe-inline'; style-src 'self' https: 'unsafe-inline'; connect-src 'self' https:;" always; # Test için: # add_header Content-Security-Policy-Report-Only "..." always;

Apache

<IfModule mod_headers.c> Header set Content-Security-Policy "default-src 'self'; img-src 'self' data: https:; script-src 'self' https: 'unsafe-inline'; style-src 'self' https: 'unsafe-inline'; connect-src 'self' https:;" </IfModule>

Cloudflare: Transform Rules → HTTP Response Header Modification ile ekleyin veya WAF → Managed rules + Page Rules ile varyantlar.


3) MIME Sniffing’i kapat — X-Content-Type-Options: nosniff

Ne yapar? Tarayıcının içerik türünü “tahmin etmesini” engeller.

X-Content-Type-Options: nosniff

NGINX

add_header X-Content-Type-Options "nosniff" always;

Apache

Header set X-Content-Type-Options "nosniff"

4) Clickjacking’e karşı — X-Frame-Options / frame-ancestors

Ne yapar? Sitenizin başka bir sitede <iframe> ile gömülmesini kısıtlar.

  • Klasik başlık:

X-Frame-Options: SAMEORIGIN
  • CSP eşdeğeri (daha esnek):

Content-Security-Policy: frame-ancestors 'self';

5) Yönlendiren bilgisini sınırla — Referrer-Policy

Ne yapar? Hangi referrer bilgisinin gönderileceğini belirler.

  • Dengeli öneri:

Referrer-Policy: strict-origin-when-cross-origin

NGINX

add_header Referrer-Policy "strict-origin-when-cross-origin" always;

Apache

Header set Referrer-Policy "strict-origin-when-cross-origin"

6) İzinler/Yetenekler — Permissions-Policy (eski Feature-Policy)

Ne yapar? Kamera, mikrofon, geolocation gibi API’ları kısıtlar.

  • Örnek:

Permissions-Policy: geolocation=(), camera=(), microphone=()

7) Güvenli Cookie bayrakları

Ne yapar? Oturum çerezlerini tarayıcıda korur.

  • Secure; HttpOnly; SameSite=Lax (veya kritik işlemlerde Strict).

Set-Cookie örneği

Set-Cookie: sess=...; Path=/; Secure; HttpOnly; SameSite=Lax

8) cPanel’de hızlı uygulama

  1. cPanel → Domains → alan adınızdaki Manage Redirection/Force HTTPS seçeneklerini kullanın.

  2. cPanel → Software → Optimize Website bölümünü kapalı bırakın (sıkıştırma başlıklarıyla karışmasın).

  3. .htaccess’e yukarıdaki Apache örneklerini ekleyin.

  4. WordPress ise bir güvenlik başlıkları eklentisiyle (veya functions.php) aynı değerleri enjekte edebilirsiniz.


9) Cloudflare’da genel strateji

  • SSL/TLS: “Full (strict)” + HSTS (yukarıdaki değerlerle).

  • Rules → Transform Rules → Modify Response Header: CSP, Referrer-Policy, X-Content-Type-Options vb. başlıkları origin’i değiştirmeden eklemek için ideal.

  • Cache Rules: HTML’yi kısa TTL, statikleri uzun TTL tutun; başlık testlerini kolaylaştırır.


10) Devreye alma kontrol listesi

  • HTTP→HTTPS zorunlu, HSTS aktif

  • CSP önce Report-Only ile test edildi, console’da hata yok

  • nosniff, Referrer-Policy, Permissions-Policy ekli

  • Set-Cookie bayrakları doğru

  • Üçüncü parti script/font alanları CSP’de yetkili

  • Alt alanlar, CDN ve panel alt yolları (örn. /cpanel, /webmail) için çakışma yok


Örnek “hepsi bir arada” (NGINX)

# Güvenlik başlıkları add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; add_header Content-Security-Policy "default-src 'self'; img-src 'self' data: https:; script-src 'self' https: 'unsafe-inline'; style-src 'self' https: 'unsafe-inline'; connect-src 'self' https:;" always; add_header X-Content-Type-Options "nosniff" always; add_header Referrer-Policy "strict-origin-when-cross-origin" always; add_header Permissions-Policy "geolocation=(), camera=(), microphone=()" always; # Çerçevelemeyi engelle add_header X-Frame-Options "SAMEORIGIN" always; # (veya) CSP ile: add_header Content-Security-Policy "frame-ancestors 'self'" always;

Sonuç

Bu başlıklar, ek bir uygulama kodu yazmadan tarayıcıda koruma katmanı sağlar. İlk etapta HSTS, nosniff, Referrer-Policy ve temel bir CSP ile başlayın; sonra izinleri sıkılaştırıp raporları izleyerek politikayı olgunlaştırın.

Diğer yazılara göz atın

Siteniz için hosting

Türkçe cPanel, LiteSpeed ve ücretsiz SSL sertifikalı hosting paketleri; mevcut sitenizi ücretsiz taşıyoruz. Sorunuz varsa ekibimize ulaşabilirsiniz.

Çözüm Ortaklarımız
Dell HP Samsung Mars Data Center Voxility Corero Network Security VMware cPanel WHMCS CloudLinux LiteSpeed Plesk Imunify360 Cloudflare Softaculous JetBackup Virtualizor