Security Headers & CSP Generator
Next.js 15+, Nginx, Cloudflare ve Apache web sunucuları için Content-Security-Policy (CSP), HSTS, X-Frame-Options ve Permissions-Policy güvenlik başlıklarını oluşturun; sitenizi XSS ve clickjacking tehditlerine karşı A+ seviyesinde zırhlayın.
HTTP Security Headers, Content Security Policy (CSP) ve OWASP Güvenlik Rehberi
Modern web uygulamalarında güvenlik yalnızca arka uç (backend) kod kalitesiyle sınırlı değildir. Tarayıcı seviyesinde çalışan HTTP Güvenlik Başlıkları (Security Headers); Siteler Arası Betik Çalıştırma (XSS), Tıklama Sahteciliği (Clickjacking), Ortadaki Adam (MITM) ve veri sızıntılarını sıfıra indiren ilk savunma hattıdır. Bu araç; Next.js 15+, Nginx, Cloudflare ve Apache için tek tıkla A+ Security Score sağlayan başlıkları üretir.
1. Kritik HTTP Güvenlik Başlıkları ve Görevleri
Mozilla Observatory, SecurityHeaders.com ve OWASP güvenlik kriterlerine göre her modern sitede bulunması gereken 6 temel başlık:
| Başlık (Header) | Tavsiye Edilen Değer | Önlediği Tehdit | Güvenlik Skoru Etkisi |
|---|---|---|---|
| Content-Security-Policy (CSP) | default-src 'self'; script-src 'self'... | XSS (Cross-Site Scripting), veri hırsızlığı, yetkisiz kod enjeksiyonu. | +30 Puan (En Kritik) |
| Strict-Transport-Security (HSTS) | max-age=63072000; includeSubDomains; preload | MITM (Ortadaki adam), SSL Stripping, güvensiz HTTP bağlantıları. | +25 Puan |
| X-Frame-Options | DENY (veya SAMEORIGIN) | Clickjacking (Sitenin gizli iframe içine gömülerek butonların tıklatılması). | +15 Puan |
| X-Content-Type-Options | nosniff | MIME-type sniffing (Resim veya metin gibi görünen kötü amaçlı scriptlerin çalışması). | +10 Puan |
| Referrer-Policy | strict-origin-when-cross-origin | Hassas URL parametrelerinin, oturum token'larının dış sitelere sızması. | +10 Puan |
| Permissions-Policy | camera=(), microphone=(), geolocation=() | Kullanıcı donanım sensörlerinin (kamera, mikrofon, konum) izinsiz tetiklenmesi. | +10 Puan |
2. Next.js 15+ next.config.mjs veya Middleware Entegrasyonu
Next.js projelerinde başlıkları next.config.mjs dosyasına eklemek en performanslı yoldur. Tarayıcıya her istekte sunucu seviyesinde yanıt başlığı basılır:
// next.config.mjs
/** @type {import('next').NextConfig} */
const nextConfig = {
async headers() {
return [
{
source: '/(.*)',
headers: [
{
key: 'Content-Security-Policy',
value: "default-src 'self'; script-src 'self' 'unsafe-inline' https://apis.google.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:;",
},
{
key: 'Strict-Transport-Security',
value: 'max-age=63072000; includeSubDomains; preload',
},
{
key: 'X-Frame-Options',
value: 'DENY',
},
{
key: 'X-Content-Type-Options',
value: 'nosniff',
},
{
key: 'Referrer-Policy',
value: 'strict-origin-when-cross-origin',
},
{
key: 'Permissions-Policy',
value: 'camera=(), microphone=(), geolocation=()',
},
],
},
]
},
}
export default nextConfig3. Nginx Web Sunucusu İçin Üretim Konfigürasyonu
Linux veya Docker üzerinde çalışan bir Nginx ters vekili (reverse proxy) kullanıyorsanız /etc/nginx/conf.d/security.conf içine şu direktifleri yerleştirebilirsiniz:
# Nginx Güvenlik Başlıkları
add_header X-Frame-Options "DENY" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
add_header Content-Security-Policy "default-src 'self'; img-src 'self' data: https:; script-src 'self' 'unsafe-inline';" always;Sıkça Sorulan Sorular (SSS)
CSP kuralları Google Analytics veya harici fontları engeller mi?
Varsayılan katı bir CSP kuralı harici kaynakları engeller. Ancak bu araçta yer alan "Preset (Önayarlar)" bölümünden Google Analytics, Google Fonts veya Clerk Auth gibi üçüncü taraf servisleri seçtiğinizde, gerekli domainler (ör. https://www.googletagmanager.com) direktiflere otomatik eklenir.
HSTS Preload listesine girmek neden önemlidir?
HSTS başlığı yalnızca kullanıcı sitenizi ilk kez HTTPS ile ziyaret ettikten sonra devreye girer. Preload listesine (hstspreload.org) kayıt olduğunuzda ise Chrome, Firefox ve Safari sitenizi fabrika çıkışı SSL zorunlu olarak tanır; kullanıcı "http://" yazsa bile tarayıcı ağa çıkmadan önce anında HTTPS'e yönlendirir.
Security Headers SEO puanımı etkiler mi?
Evet. Google, güvenli web deneyimini (HTTPS, no-sniffing, XSS koruması) doğrudan bir sıralama sinyali olarak kabul eder. Ayrıca güvenlik ihlalleri yaşayan web siteleri Google tarafından "Bu site güvenli olmayabilir" uyarısıyla cezalandırılır.