WordPress güvenliği neden her şeyden çok sizin alışkanlıklarınıza bağlıdır?
WordPress hack'lerinin çoğu karmaşık hatalardan veya gelişmiş saldırılardan değil, en basit hatalardan kaynaklanır: zayıf şifreler, güncellenmemiş eklentiler ve hassas dosyaların ihmal edilmesi. WordPress güvenliğini ciddiye almak istiyorsanız, önce saldırganın nereden girdiğini bilmeniz ve ardından bu yolları öncelik sırasına göre kapatmanız gerekir.
Bu makalede, WordPress güvenliği için pratik ve önceliklendirilmiş bir kontrol listesi hazırladım. Her bölüm net talimatlar, gerçek örnekler ve yaygın hatalar hakkında uyarılar içerir. Tüm işleri bir anda yapmanıza gerek yok; ilk bölümden başlayın ve sırayla ilerleyin.
Öncelik Bir: Şifre ve kimlik doğrulama ile giriş yollarını kapatma
Başarılı WordPress saldırılarının %80'inden fazlası giriş sayfası (wp-login.php) üzerinden gerçekleştirilir. Saldırgan, brute-force (şifre tahmin) saldırıları veya diğer sitelerden sızan şifreleri kullanarak yönetim paneline girmeye çalışır. Bu yüzden WordPress güvenliğinde ilk adım, tam olarak bu noktayı zorlaştırmaktır.
Tüm kullanıcılar için güçlü ve zorunlu şifreler
Site yöneticisinin şifresi 14 karakterden kısa olmamalı ve büyük harf, küçük harf, rakam ve sembol kombinasyonu içermelidir. Güvenli şifre üretmek için LastPass veya Bitwarden gibi araçları kullanabilirsiniz. Ayrıca wp-config.php dosyasında şifreyi varsayılan olarak güçlendirebilirsiniz:
define('WP_AUTO_UPDATE_CORE', true);
// Yönetim panelinden dosya düzenlemeyi devre dışı bırak
define('DISALLOW_FILE_EDIT', true);
Önemli not: Sitenizde birden fazla yazar varsa, rolleri mutlaka kontrol edin. Sadece içerik yayınlayan kullanıcılara "yönetici" değil "yazar" rolü verin. İhtiyaçtan yüksek her rol, ekstra bir risktir.
Giriş denemelerini sınırlama (Login Lockdown)
Limit Login Attempts Reloaded gibi bir eklenti kurun; böylece 3 ila 5 başarısız denemeden sonra IP adresi 15 dakika kilitlenir. Bu, brute-force saldırılarını pratik olarak etkisiz hale getirir. Önerilen ayarlar:
- Maksimum izin verilen deneme: 3 kez
- Kilit süresi: 15 dakika
- IP ve User-Agent bazlı kilitleme
Yaygın hata: Birçok yönetici eklentiyi kurar ancak varsayılan ayarları değiştirmez. Bu eklentilerin varsayılanı genellikle 20 denemeye izin verir, bu da saldırgan için yeterlidir. Mutlaka sayıyı düşürün.
Yöneticiler için iki faktörlü kimlik doğrulama (2FA)
WordPress güvenliği için tek bir şey yapacaksanız, bunu yapın: tüm yönetici hesapları için 2FA'yı etkinleştirin. WP 2FA veya Google Authenticator gibi eklentileri kurun. Bu sayede şifre sızdırılsa bile, saldırgan tek kullanımlık kod olmadan giriş yapamaz.
Öncelik İki: Çekirdek, eklenti ve temaların düzenli güncellenmesi
Başarılı hack'lerin çoğu, eski eklentilerdeki bilinen güvenlik açıkları üzerinden gerçekleşir. Saldırgan siteleri tarayarak eski sürümleri bulur ve genel hatalardan yararlanır. Güncelleme, en basit ve en etkili savunma önlemidir.
Otomatik güncellemeleri etkinleştirme
wp-config.php dosyasına şu satırı ekleyerek WordPress çekirdeğinin otomatik güncellenmesini sağlayın:
define('WP_AUTO_UPDATE_CORE', true);
Eklentiler ve temalar için WordPress yönetim panelinden "Güncellemeler" bölümüne gidin ve "Otomatik güncelleme" seçeneğini etkinleştirin. Uyumluluk konusunda endişeliyseniz, en azından haftalık manuel kontrol için bir hatırlatıcı ayarlayın.
Devre dışı bırakılmış eklenti ve temaları silme
Devre dışı bırakılmış ancak silinmemiş bir eklenti hâlâ savunmasız olabilir. Saldırgan dosyalarını kullanabilir. Basit kural: Bir eklentiyi kullanmıyorsanız, sadece devre dışı bırakmayın, silin.
Yaygın hata: Birçok yönetici yıllardır güncellenmemiş eski eklentileri kurulu tutar. Bir eklenti 6 aydan uzun süredir güncellenmediyse, terk edilme olasılığı yüksektir ve bir alternatif bulmalısınız.
Öncelik Üç: Hassas dosya ve klasörlerin korunması
wp-config.php dosyası veritabanı bağlantı bilgilerini içerir ve sızdırılırsa tüm site risk altındadır. Ayrıca wp-content/uploads klasörü kullanıcı dosyalarının yüklendiği yerdir ve burada script çalıştırılmasını engellemelisiniz.
wp-config.php dosyasını htaccess ile kilitleme
Site kökündeki .htaccess dosyasına şu kodu ekleyerek yapılandırma dosyasına erişimi engelleyin:
<Files wp-config.php>
Order Allow,Deny
Deny from all
</Files>
Bu, wp-config.php dosyasına yapılan doğrudan tüm isteklerin 403 hatası almasını sağlar.
Yükleme klasöründe PHP çalıştırılmasını engelleme
wp-content/uploads klasöründe bir .htaccess dosyası oluşturun ve şu kodu ekleyin:
<FilesMatch "\.(php|php5|phtml)$">
Deny from all
</FilesMatch>
Bu, form yükleme yoluyla giren kötü amaçlı dosyaların çalıştırılmasını engeller.
Canlı ortamda hata gösterimini devre dışı bırakma
wp-config.php dosyasına şu ayarları ekleyerek PHP hatalarının kullanıcıya gösterilmesini engelleyin:
ini_set('display_errors', 0);
ini_set('log_errors', 1);
define('WP_DEBUG', false);
Hata gösterimi, saldırgana site yapısı hakkında değerli bilgiler verir.
Öncelik Dört: Düzenli yedekleme ve geri yükleme testi
Hiçbir güvenlik %100 değildir. Site hacklenirse, tek kurtuluş yolu sağlam bir yedektir. Yedek, dosyaları ve veritabanını içermeli ve ana sunucunun dışında bir yerde saklanmalıdır.
Önerilen yedekleme planı
- Veritabanından günlük yedek (düşük hacim, hızlı)
- Tüm dosyalardan haftalık yedek
- Son 30 sürümün saklanması
- S3 veya Google Drive gibi bulut depolamaya otomatik aktarım
UpdraftPlus veya BackWPup gibi eklentiler bu işi otomatikleştirir. Yedek hedefinin aynı sunucuda olmadığından emin olun; sunucu hacklenirse yedek de kaybolur.
Aylık geri yükleme testi
Hiç test edilmemiş bir yedeğin değeri yoktur. Ayda bir kez, yedeği bir test ortamında (localhost veya alt alan adı gibi) geri yükleyin ve sitenin sorunsuz çalıştığından emin olun. Bu iş 30 dakika sürer ancak olay gününde saatlerce zaman kazandırır.
Öncelik Beş: Güvenlik duvarı ve ağ düzeyinde koruma
Doğrudan yolları kapattıktan sonra sıra ağ düzeyinde korumaya gelir. Web uygulaması güvenlik duvarı (WAF), kötü amaçlı trafiği WordPress'e ulaşmadan önce filtreleyebilir.
Güvenlik duvarı çözümü seçimi
İki seçeneğiniz var: Wordfence gibi bir güvenlik duvarı eklentisi veya CDN ve güvenlik duvarı katmanı olarak Cloudflare. Siteniz paylaşımlı sunucudaysa eklenti daha iyi bir seçenektir. Özel sunucu veya VPS'niz varsa Cloudflare'i öneririm çünkü işlem yükünü sunucudan alır.
Cloudflare için önerilen ayarlar:
- Saldırı sırasında "Under Attack Mode"u etkinleştirme
- Bot Fight Mode'u etkinleştirme
- Giriş sayfası için Rate Limiting kuralları ayarlama
Siteniz bulut altyapısında barındırılıyorsa, ServerNet gibi barındırma şirketinin sağladığı ve genellikle güvenlik duvarı ile DDoS koruması içeren güvenlik hizmetlerini kullanabilirsiniz.
Düzenli kötü amaçlı yazılım taraması
Wordfence gibi bir eklenti kurun ve haftalık taramayı etkinleştirin. Bu eklenti çekirdek dosyalarını orijinal sürümle karşılaştırır ve yetkisiz her değişikliği raporlar. Çekirdek dosyalarda bir değişiklik görürseniz, site enfekte olmuş demektir.
Öncelik Altı: Aktarım katmanı ve DNS güvenliği
SSL ve DNS, genellikle göz ardı edilen ancak WordPress güvenliğinde önemli rol oynayan iki katmandır.
SSL'yi etkinleştirme ve HTTPS'ye zorunlu geçiş
Let's Encrypt'ten ücretsiz SSL sertifikası alın ve zorunlu geçiş için .htaccess dosyasına şu kodu ekleyin:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
SSL'yi etkinleştirdikten sonra, WordPress ayarlarında site adresini https:// ile güncellediğinizden emin olun. Aksi takdirde, yönlendirme döngüsü (redirect loop) oluşur.
DNS koruması
Barındırma sağlayıcınızın varsayılan DNS'ini kullanıyorsanız, hesabınızın güçlü bir şifresi olduğundan ve 2FA'nın etkin olduğundan emin olun. DNS ele geçirme en tehlikeli saldırılardan biridir çünkü saldırgan site trafiğini kendi sunucusuna yönlendirebilir.
Özet: WordPress güvenliği yol haritası
WordPress güvenliği bir süreçtir, bir hedef değil. Bu kontrol listesiyle öncelik sırasına göre ilerleyin:
- Tüm yöneticiler için güçlü şifreler ve 2FA
- Giriş denemelerini sınırlama
- Çekirdek, eklenti ve temaların otomatik güncellenmesi
- Hassas dosyaları kilitleme ve yükleme klasöründe PHP çalıştırılmasını engelleme
- Günlük yedekleme ve aylık geri yükleme testi
- Güvenlik duvarı ve düzenli kötü amaçlı yazılım taraması
- Zorunlu SSL ve DNS koruması
Bugün sadece ilk üç maddeyi yaparsanız, yaygın saldırı yollarının %90'ını kapatmış olursunuz. Geri kalanını önümüzdeki haftalarda tamamlayın. Unutmayın: WordPress güvenliği bir günlük iş değildir, ancak bu kontrol listesiyle hacklenme riskini ciddi şekilde azaltabilirsiniz.
Yorumlar 0
Henüz yorum yok — ilk siz olun!