sunucuhataları
teknik çözüm merkezi
Ara Giriş Yap Üye Ol
🏠 Ana Sayfa 📚 Kurulum Rehberleri
Kategoriler
🌐 Web Sunucuları 🐧 İşletim Sistemleri 📦 Sanallaştırma & VPS 🖥️ Kontrol Panelleri 🔒 SSL & Güvenlik 📝 CMS & Uygulamalar 🗄️ Veritabanı 📧 Mail Sunucusu 🗨️ Forum ℹ️ Hakkımızda 📧 İletişim
Giriş Yap Üye Ol
Ana Sayfa Web Sunucuları Nginx Kurulumu Nginx Güvenlik Başlıkları (Security Headers) Ya...
🟢 Nginx Kurulumu

Nginx Güvenlik Başlıkları (Security Headers) Yapılandırması

Nginx'te HTTP güvenlik başlıkları: HSTS, X-Frame-Options, Content-Security-Policy, Referrer-Policy ve Permissions-Policy yapılandırması.

📅 31 Mayıs 2025 👁 16 görüntülenme ⏱ 4 dk okuma
𝕏 Paylaş
📋 İçindekiler göster/gizle

Nginx Güvenlik Başlıkları Nedir?

HTTP güvenlik başlıkları (security headers), web sunucusunun tarayıcıya yanıtıyla birlikte gönderdiği ve tarayıcının içeriği nasıl işleyeceğini belirleyen özel HTTP başlıklarıdır. Bu başlıklar; XSS (Cross-Site Scripting) saldırıları, clickjacking, MIME sniffing ve diğer web güvenlik açıklarına karşı ekstra koruma katmanı oluşturur.

Güvenlik başlıkları test etmek için securityheaders.com ve mozilla observatory gibi ücretsiz araçlar kullanabilirsiniz. Bu rehberde Nginx üzerinde kritik güvenlik başlıklarının nasıl yapılandırılacağını öğreneceksiniz.

Nginx'te Güvenlik Başlıkları Ekleme Yöntemleri

Güvenlik başlıklarını iki yerden ekleyebilirsiniz:

sudo nano /etc/nginx/conf.d/security-headers.conf

1. HTTP Strict Transport Security (HSTS)

HSTS, tarayıcıyı sitenize yalnızca HTTPS üzerinden bağlanmaya zorlar. Bir kez bu başlığı gördükten sonra tarayıcı, HTTP isteklerini otomatik olarak HTTPS'e yönlendirir:

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

Parametre açıklamaları:

  • max-age=31536000: 1 yıl boyunca HTTPS zorunlu
  • includeSubDomains: Alt domainlere de uygulanır
  • preload: Tarayıcıların HSTS preload listesine eklenebilir

2. X-Frame-Options

Sitenizin bir iframe içinde yüklenmesini engeller (clickjacking koruması):

add_header X-Frame-Options "SAMEORIGIN" always;
# DENY: Hiçbir yerde iframe'e izin verme
# SAMEORIGIN: Sadece aynı domain iframe kullanabilir
# ALLOW-FROM https://trusted.com: Belirli siteye izin ver (eski)

3. X-Content-Type-Options

Tarayıcının MIME tipini otomatik tahmin etmesini (MIME sniffing) engeller:

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

4. X-XSS-Protection

Eski tarayıcılar için yerleşik XSS filtresi (modern tarayıcılarda CSP tercih edilir):

add_header X-XSS-Protection "1; mode=block" always;

5. Content Security Policy (CSP)

CSP, hangi kaynakların yüklenebileceğini belirterek XSS saldırılarına karşı en güçlü savunmayı sağlar:

# Temel CSP (katı)
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self'; connect-src 'self'; frame-ancestors 'none';" always;

# WordPress için daha esnek CSP
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.google-analytics.com https://www.googletagmanager.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: https:; font-src 'self' https://fonts.gstatic.com; connect-src 'self' https://www.google-analytics.com;" always;

6. Referrer-Policy

Kullanıcılar sitenizden ayrıldığında Referer başlığında ne gönderileceğini kontrol eder:

add_header Referrer-Policy "strict-origin-when-cross-origin" always;
# no-referrer: Hiç referrer gönderme
# strict-origin: Sadece protokol+host (HTTPS->HTTP geçişinde hiç gönderme)
# strict-origin-when-cross-origin: Aynı origin için tam URL, cross için sadece origin

7. Permissions-Policy

Tarayıcı API'lerini (kamera, mikrofon, konum, vb.) kısıtlar:

add_header Permissions-Policy "accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()" always;

8. Cross-Origin Headers

add_header Cross-Origin-Opener-Policy "same-origin" always;
add_header Cross-Origin-Embedder-Policy "require-corp" always;
add_header Cross-Origin-Resource-Policy "same-origin" always;

Tam Yapılandırma Dosyası

sudo nano /etc/nginx/conf.d/security-headers.conf
# Sunucu sürümünü gizle
server_tokens off;

# Güvenlik başlıkları
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "accelerometer=(), camera=(), geolocation=(), microphone=(), payment=()" always;

# PHP sürümünü gizle (fastcgi_params'ta)
fastcgi_hide_header X-Powered-By;
sudo nginx -t
sudo systemctl reload nginx

Güvenlik Puanınızı Test Etme

# curl ile başlıkları kontrol et
curl -I https://example.com

# Belirli başlığı kontrol et
curl -sI https://example.com | grep -i "strict-transport"

# Tüm güvenlik başlıklarını görüntüle
curl -sI https://example.com | grep -iE "(strict|frame|content-type|xss|referrer|permissions|csp)"

Sık Karşılaşılan Sorunlar

HSTS Sonrası HTTP'ye Dönülemez

HSTS aktifleştirmeden önce sitenizin kesinlikle HTTPS çalıştığından emin olun. max-age değerini başlangıçta düşük tutun (300 saniye) ve her şeyin çalıştığından emin olduktan sonra 1 yıla çıkarın:

add_header Strict-Transport-Security "max-age=300" always;  # Test için

CSP Scriptleri/Stilleri Kırıyor

# Report-Only modda test edin (engellemez, sadece raporlar):
add_header Content-Security-Policy-Report-Only "default-src 'self'; ..." always;
# Browser console'da ihlalleri görün, ardından gerçek CSP'yi aktifleştirin

Sonuç

Nginx üzerinde kritik HTTP güvenlik başlıklarını yapılandırarak web uygulamalarınızı XSS, clickjacking, MIME sniffing ve diğer tarayıcı tabanlı saldırılara karşı korudunuz. HSTS, CSP, X-Frame-Options ve Permissions-Policy kombinasyonu ile A+ güvenlik puanı alabilirsiniz.

🤔 Bu kurulumda sorun mu yaşıyorsunuz?

Hata mesajınızı kopyalayıp foruma konu açın. Topluluğumuz size özel durumunuza göre yardımcı olacaktır.

🗨️ Foruma Katıl & Yardım Al

Yorumlar

Henüz yorum yok. İlk yorumu siz yapın!

Yorum Yap

Yorumunuz onaylandıktan sonra yayınlanır.