Güvenlik Başlıkları (HTTP Security Headers) Nasıl Eklenir?
Kısa yanıt: Sitenizin kök dizinindeki .htaccess dosyasına <IfModule mod_headers.c> bloğu içinde Header always set X-Content-Type-Options "nosniff", Header always set X-Frame-Options "SAMEORIGIN" ve Header always set Referrer-Policy "strict-origin-when-cross-origin" satırlarını ekleyin, ardından başlıkları test edin.
Bu rehber kimin için: Güvenliği artırmak isteyen site sahipleri · Gereken süre: 15 dakika · Seviye: İleri
Güvenlik başlıkları, tarayıcıya sitenizin nasıl davranması gerektiğini söyler: başka sitelerde çerçeve içinde açılmamak, dosya türü tahmininden kaçınmak, yönlendirme bilgisini sınırlamak gibi. Bu başlıklar tıklama ele geçirme (clickjacking) ve bazı XSS saldırılarına karşı ek bir savunma katmanı sağlar.
Başlıkları ekleme
- Mevcut durumu görün: HTTP header kontrol aracına adresinizi yazıp eksik başlıkları görün.
- .htaccess’i açın: cPanel › Dosya Yöneticisi › public_html › .htaccess; önce yedeğini alın.
- Temel başlıklar: X-Content-Type-Options "nosniff", X-Frame-Options "SAMEORIGIN", Referrer-Policy "strict-origin-when-cross-origin" satırlarını ekleyin.
- Permissions-Policy: Kullanmadığınız tarayıcı özelliklerini kapatın:
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()". - HSTS: HTTPS’i tam kullanıyorsanız HSTS başlığını ekleyin.
- Test edin: Siteyi, ödeme sayfasını ve gömülü içerikleri kontrol edin; başlıkları tekrar doğrulayın.
Content-Security-Policy dikkat ister
CSP, sayfanın hangi kaynaklardan betik, stil ve görsel yükleyebileceğini belirler ve en güçlü başlıktır. Ancak yanlış bir CSP; analitik, ödeme, sohbet ve reklam kodlarını bozabilir. Önce Content-Security-Policy-Report-Only başlığıyla deneyin, tarayıcı konsolundaki ihlalleri inceleyin ve kuralları adım adım sıkılaştırın.
Hangi başlık ne işe yarar?
| Başlık | Önerilen değer | Ne yapar, neye dikkat |
|---|---|---|
| X-Content-Type-Options | nosniff | Tarayıcının dosya türünü tahmin etmesini engeller; yan etkisi nadirdir |
| X-Frame-Options | SAMEORIGIN | Sayfanızın başka sitelerde çerçeve içinde açılmasını engeller; CSP’deki frame-ancestors 'self' yönergesi aynı işin yeni karşılığıdır, ikisi birlikte kullanılabilir |
| Referrer-Policy | strict-origin-when-cross-origin | Başka sitelere giden bağlantılarda yalnız alan adını iletir |
| Permissions-Policy | camera=(), microphone=(), geolocation=() | Kullanmadığınız tarayıcı özelliklerini kapatır; harita ya da görüntülü görüşme kullanıyorsanız ilgili özelliği açık bırakın |
| Strict-Transport-Security | max-age=31536000 | Tarayıcıyı yalnız HTTPS kullanmaya zorlar; önce bütün alt alan adlarının HTTPS ile açıldığını doğrulayın, ayrıntılar HSTS rehberinde |
| Content-Security-Policy | Önce Report-Only ile deneyin | Betik, stil ve görsel kaynaklarını sınırlar; en güçlü ama yanlış ayarda siteyi en kolay bozan başlıktır |
| X-XSS-Protection | Eklemeyin | Güncel tarayıcılar kullanmaz; yerine CSP kullanın |
Header always set yazımı başlığı hata sayfalarında da gönderir. Aynı başlığı hem .htaccess’te hem bir eklentide ya da Cloudflare’de tanımlarsanız yanıtta iki kez görünebilir; HTTP header kontrol sonucunda her başlığın bir kez geçtiğini doğrulayın.
Hâlâ çözülmediyse
Başlıklar görünmüyorsa LiteSpeed Cache veya Cloudflare önbelleğini temizleyin; bazı eklentiler de aynı başlıkları ekleyerek çakışma yaratabilir. Kuralları .htaccess oluşturucu ile hazırlayabilirsiniz. Ücretsiz SSL’li web hosting paketlerimizde bu başlıkları .htaccess ile kendiniz ekleyebilirsiniz.
Sık sorulan sorular
X-XSS-Protection başlığını eklemeli miyim?
Hayır. Modern tarayıcılar bu başlığı kullanmıyor; yerine CSP önerilir.
Ödeme sayfam iframe kullanıyor, X-Frame-Options sorun olur mu?
SAMEORIGIN yalnızca sizin sayfanızın başka sitelerde gösterilmesini engeller; sizin sayfanızın içine iframe yerleştirmeyi etkilemez.
CSP için güvenli bir başlangıç değeri var mı?
Önce Content-Security-Policy-Report-Only başlığıyla default-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'self' değerini deneyin. Tarayıcı konsolunda raporlanan her harici kaynağı (analitik, ödeme, yazı tipi, harita) ilgili yönergeye ekleyin; yeni ihlal görünmediğinde başlığın adını Content-Security-Policy olarak değiştirin.
İlgili rehberler
- HSTS Nasıl Etkinleştirilir? Güvenli Ayar ve Riskler
- .htaccess Dosyası Nasıl Bulunur ve Düzenlenir?
- Karışık İçerik (Mixed Content) Uyarısı Nasıl Düzeltilir?
Bu rehber işinize yaradı mı?
Teşekkürler. Çözüm bulamadıysanız destek talebi açın veya [email protected] adresine yazın.