WordPress sitelerinde güvenliği sunucu seviyesinde başlatmak için .htaccess dosyası en güçlü araçlardan biridir. Bu dosya, isteklerin WordPress'e ulaşmadan önce filtrelenmesini sağlar.
Aşağıdaki kod parçacıklarını .htaccess dosyanın en başına veya # BEGIN WordPress satırının hemen üzerine ekleyebilirsin. Önemli: Değişiklik yapmadan önce mevcut dosyanın bir yedeğini almayı unutma.
1. Hassas Dosyalara Erişimi Engelle
WordPress'in kalbi sayılan dosyalara dışarıdan erişimi tamamen kapatmak ilk adım olmalıdır.
-
wp-config.php Koruması: Veritabanı bilgilerini korur.
-
Hata Logları ve Temas Dosyaları:
.htaccessdosyasının kendisini ve hata kayıtlarını gizler.
# wp-config.php koruması
<Files wp-config.php>
order allow,deny
deny from all
</Files>
# .htaccess koruması
<Files .htaccess>
order allow,deny
deny from all
</Files>
2. Dizin Listelemeyi Kapat
Saldırganların sitendeki klasör yapısını görmesini ve hangi eklentileri kullandığını anlamasını engeller.
# Dizin listelemeyi devre dışı bırak
Options -Indexes
3. PHP Çalıştırmayı Kısıtla (Uploads Klasörü)
En yaygın saldırı yöntemlerinden biri, wp-content/uploads klasörüne zararlı bir PHP dosyası yükleyip onu çalıştırmaktır. Aşağıdaki kodu sadece wp-content/uploads/ klasörü içindeki yeni bir .htaccess dosyasına eklersen, o klasörde PHP dosyaları çalışmaz.
<Files *.php>
deny from all
</Files>
4. XML-RPC Erişimi Kapat
Eğer Jetpack gibi bir eklenti veya mobil uygulama kullanmıyorsan, XML-RPC protokolü üzerinden gelen kaba kuvvet (brute force) saldırılarını engellemek için bu özelliği kapatmalısın.
# XML-RPC engelleme
<Files xmlrpc.php>
order allow,deny
deny from all
</Files>
5. Yazar Aramalarını (Author Scans) Engelle
Saldırganlar genellikle ?author=1 gibi sorgularla kullanıcı adlarını bulmaya çalışır. Bunu engellemek için:
# Kullanıcı adı taramasını durdur
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} (author=\d+) [NC]
RewriteRule .* - [F]
6. Ekstra Güvenlik Başlıkları (Security Headers)
Tarayıcı düzeyinde güvenlik önlemleri almak için bu başlıkları ekleyebilirsin:
<IfModule mod_headers.c>
# XSS saldırılarına karşı koruma
Header set X-XSS-Protection "1; mode=block"
# Clickjacking koruması
Header set X-Frame-Options "SAMEORIGIN"
# MIME tipini sabitleme
Header set X-Content-Type-Options "nosniff"
</IfModule>
Dikkat Etmen Gerekenler:
-
WAF Kullanımı: ModSecurity gibi sunucu tarafı yazılımlar kullanıyorsan (özellikle "fast" modda), bazı
.htaccesskuralları çakışabilir. Eğer bu kodları ekledikten sonra 500 Internal Server Error alırsan, eklediğin son kısmı geri alarak test etmelisin. -
Eklentiler: Wordfence veya iThemes Security gibi eklentiler bu kuralların çoğunu otomatik ekler. Çift kayıt olmamasına dikkat et.
