WordPress sitenizin bir gün siyah bir ekran ya da tanımadığınız bir reklamla sizi karşılaması… Hiçbir web sitesi yöneticisi bu anı yaşamak istemez. Oysa saldırıların büyük kısmı, basit ama göz ardı edilen açıklardan faydalanır. Bu yazıda, sitenizi ciddi bir güvenlik katmanına kavuşturacak beş somut adımı, neden işe yaradıklarıyla birlikte anlatıyorum. Hemen başlayalım.
Güncellemeleri bir refleks haline getirin
WordPress güvenliğinin temel taşı güncellemelerdir. Zafiyet raporlarının önemli bir kısmı, güncellenmemiş çekirdek, eklenti ve temalardan kaynaklanır. Otomatik güncellemeleri etkinleştirmek ilk akla gelen çözümdür ancak her zaman yeterli olmaz. Özellikle e-ticaret ya da üyelik sitesi gibi kritik projelerde, güncelleme sonrası uyumluluk sorunları yaşanabilir. Bu yüzden sahneleme (staging) ortamında test ederek güncelleme yapmak, profesyonel bir alışkanlıktır.
Pratikte şu adımları izleyebilirsiniz:
- WordPress yönetici panelinde Güncellemeler bölümünü haftalık olarak kontrol edin. Bekleyen eklenti ve tema güncellemelerini topluca görmek mümkündür.
- Otomatik küçük çekirdek güncellemeleri varsayılan olarak açıktır. Büyük sürümler için barındırma hizmetinizin sunduğu akıllı güncelleme ya da otomatik yedekleme sonrası güncelleme seçeneklerine bakın.
- Eklentileri seçerken “son güncelleme tarihi” ve “test edilen WordPress sürümü” bilgilerine dikkat edin. Altı aydan uzun süredir güncellenmeyen bir eklenti, potansiyel risk taşır.
- Kullanılmayan eklenti ve temaları silin. Siteyi yavaşlatmanın yanında, güncellenmeyen her parça bir arka kapıya dönüşebilir.
Parola ve yetkilendirme disiplini
Zayıf parolalar, kaba kuvvet saldırılarının en kolay hedefidir. “admin” ya da “siteadi123” gibi parolalar saniyeler içinde kırılabilir. WordPress varsayılan olarak güçlü parola önerse de, kullanıcılar genelde eski alışkanlıklarına döner. Burada asıl mesele, yalnızca parola uzunluğu değil, yetkilendirme hiyerarşisidir.
Çoğu site sahibi, günlük işler için Yönetici yetkisiyle oturum açar. Oysa içerik girmek ya da yorum yanıtlamak için Editör yetkisi yeterlidir. En yüksek yetki, yalnızca gerçekten ihtiyaç duyulan anlarda kullanılmalıdır. Ayrıca her çalışan ya da yazar için ayrı hesap açmak, iş bırakma durumunda erişimi tek tuşla kesmeyi sağlar.
Şu noktalar uygulamaya değer:
- Minimum 16 karakterli, rastgele oluşturulmuş parolalar kullanın. Parola yöneticisi (örneğin tarayıcı bazlı olanlar ya da bağımsız uygulamalar) bu yükü üzerinizden alır.
- İki faktörlü kimlik doğrulamayı (2FA) tüm yönetici hesapları için zorunlu kılın. Bunu yapabilen onlarca güvenlik eklentisi mevcuttur.
- Başarısız giriş denemelerini sınırlayın. Arka arkaya beş hatalı denemeden sonra IP engelleme ya da geçici süreyle kilitleme, kaba kuvvet saldırılarını büyük ölçüde durdurur.
- Kullanıcı adı olarak “admin” ya da site adıyla aynı ifadeleri kullanmayın. Yeni kurulumlarda WordPress zaten sizden özel bir kullanıcı adı ister; mevcut “admin” hesaplarını veritabanından ya da eklentiyle değiştirebilirsiniz.
Düzenli yedekleme: Tek geçerli sigortanız
Yedekleme, saldırı sonrası değil, öncesinde anlam kazanan bir önlemdir. Bir fidye yazılımı dosyalarınızı şifrelediğinde ya da yanlış bir güncelleme veritabanını bozduğunda, yedek olmadan geri dönüş yolu neredeyse yoktur. Üstelik yalnızca yedek almak yetmez; o yedeğin sorunsuz geri yükleneceğinden emin olmalısınız.
İdeal bir yedekleme stratejisi 3-2-1 kuralına dayanır: Üç kopya, iki farklı ortam, bir kopya da fiziksel olarak farklı bir konumda. WordPress için şu şekilde uyarlayabilirsiniz:
- Barındırma hizmetinizin otomatik yedeğini birincil kopya olarak kullanın ancak yalnızca buna güvenmeyin.
- UpdraftPlus, BackWPup gibi bir eklentiyle düzenli yedek alın ve yedekleri Google Drive, Dropbox ya da ayrı bir bulut depolama hesabına gönderin.
- Ayda bir, bir test sunucusunda yedekten geri yükleme denemesi yapın. Geri yüklemenin sorunsuz çalıştığını görmek, olası bir felaket anında size saatler kazandırır.
Yedekleme sıklığını sitenin güncellenme temposu belirler. Haftada bir içerik eklenen bir blog için haftalık tam yedek ve günlük veritabanı yedeği yeterli olabilir. Günde yüzlerce işlem alan bir WooCommerce mağazasında ise en az saatlik veritabanı yedeği ve günlük tam yedek gerekir.
Sitenizi bir güvenlik duvarıyla çevreleyin
Güvenlik duvarı, kötü niyetli trafiği henüz sitenize ulaşmadan engeller. WordPress için iki temel türü vardır: DNS seviyesinde çalışan bulut tabanlı güvenlik duvarları ve sunucu tarafında çalışan eklenti tabanlı güvenlik duvarları. Bulut tabanlı olanlar trafiği önce kendi filtrelerinden geçirir, böylece sunucu kaynaklarınızı tüketmez. Eklenti tabanlı olanlar ise sunucunuzda çalışır ve paylaşımlı hostinglerde performansa etki edebilir.
Güvenlik duvarının öne çıkan faydaları şunlardır:
- Bilinen saldırı desenlerini (SQL enjeksiyon, XSS, kötü botlar) imza tabanlı olarak engeller.
- Ülke bazlı erişim kısıtlamasıyla, yalnızca hedef kitlenizin bulunduğu bölgelere izin verebilirsiniz. Örneğin yalnızca Türkiye’ye hizmet veren bir site için yurt dışı trafiğini tamamen engellemek mümkündür.
- Sıfırıncı gün açıklarında, resmî yama çıkana kadar geçici sanal yama uygulayabilir.
Wordfence, Sucuri gibi çözümlerin ücretsiz sürümleri bile temel seviyede koruma sağlar. Ancak bulut tabanlı bir güvenlik duvarına geçmek, özellikle DDoS saldırıları gibi büyük ölçekli tehditlerde belirgin fark yaratır.
Barındırma altyapınızı sorgulayın
Güvenlik zincirinin en zayıf halkası çoğu zaman barındırma ortamıdır. Ucuz paylaşımlı hosting paketleri, aynı sunucudaki başka bir sitenin ihlal edilmesi durumunda sizin sitenizi de tehlikeye atabilir. “İzole edilmiş hesap”, “kapsayıcı tabanlı altyapı” ya da “CloudLinux” gibi terimler, hosting seçerken aradığınız güvenlik işaretleridir.
Bazı hosting sağlayıcıları, WordPress’e özel güvenlik önlemleri sunar:
- Otomatik kötü amaçlı yazılım taraması ve temizliği.
- Entegre CDN ve DDoS koruması.
- PHP sürüm yönetimi ve eski sürümlerin kapatılması.
- Sunucu seviyesinde dosya değişikliği izleme.
Kendi kendinize kontrol edebileceğiniz birkaç nokta var:
wp-config.phpdosyasının izinlerini 400 veya 440 olarak ayarlayın. Bu, dosyanın web sunucusu kullanıcısı dışında okunmasını engeller./wp-content/uploads/klasöründe PHP çalıştırılmasını devre dışı bırakın. Saldırganlar genelde buraya zararlı kod yüklemeye çalışır. Basit bir.htaccesskuralı bu riski ortadan kaldırır.- SSL sertifikasının süresiz ya da otomatik yenilenen türden olduğundan emin olun. Günümüzde ücretsiz Let’s Encrypt sertifikaları çoğu hosting panelinde tek tıkla kurulabilir.
İzleme ve olay müdahalesi için temel altyapı
Saldırıyı önlemek kadar, gerçekleştiğinde hızlı fark etmek de kritiktir. Çünkü bir sitenin saldırıya uğradığını anlamak bazen haftalar sürebilir. O süre zarfında saldırgan, ziyaretçi verilerini çalabilir ya da siteyi başka saldırılar için sıçrama tahtası olarak kullanabilir.
Temel izleme adımları şunlardır:
- Dosya bütünlüğü izleme: Wordfence ya da Sucuri eklentileri, çekirdek dosyalardaki değişiklikleri algılar. Beklenmedik bir değişiklik uyarısı, erken teşhis için paha biçilmezdir.
- Etkinlik günlüğü: Kimin hangi saatte hangi işlemi yaptığını kaydeden bir eklenti, şüpheli davranışları yakalamanın en kolay yoludur.
- Kara liste kontrolü: Google Safe Browsing ve benzeri hizmetler üzerinden alan adınızın durumunu düzenli aralıklarla kontrol edin. Site kara listeye düşerse, hem ziyaretçileriniz uyarı görür hem de arama motoru sıralamanız aniden düşer.
Bunları kurduktan sonra, bir “olay müdahale planı” oluşturmak işin profesyonel kısmıdır. Plan basit tutulabilir: Sorunu kim fark edecek, hosting firmasına kim ulaşacak, temiz yedek hangi sırayla geri yüklenecek, kullanıcılara bildirim gerekiyor mu? Bu soruların cevabı önceden belirlenmişse, panik anında değerli saatler kazanırsınız.
Sağlam temel: Hemen uygulanabilir güvenlik kontrol listesi
Yukarıdaki başlıkları, hızlıca gözden geçirip uygulamak isteyenler için bir özet tablo hazırladım. Her satır, ilgili başlıkta anlatılan bir eylemin kısa tarifidir.
| Eylem | Ne Sağlar? | Tahmini Süre |
|---|---|---|
| Tüm eklenti ve temaları güncelle | Bilinen açıkları kapatır | 10 dakika |
| Yönetici hesabına 2FA ekle | Kaba kuvvet saldırılarını durdurur | 5 dakika |
| Kullanılmayan eklentileri sil | Saldırı yüzeyini küçültür | 5 dakika |
| Haftalık otomatik yedek kur | Veri kaybına karşı sigorta | 15 dakika |
| Güvenlik duvarı eklentisi yükle | Kötü trafiği filtreler | 15 dakika |
| .htaccess ile uploads klasöründe PHP çalışmasını engelle | Zararlı kod yürütmeyi engeller | 5 dakika |
| wp-config.php izinlerini 400 yap | Kritik dosyayı korur | 2 dakika |
| Etkinlik günlüğü eklentisi kur | Şüpheli hareketleri gösterir | 5 dakika |
Bu liste, sıfırdan bir güvenlik stratejisi oluşturmak yerine, mevcut durumu hızla iyileştirmek içindir. Her maddenin arkasında, yukarıdaki bölümlerde anlatılan gerekçe yatar.
WordPress güvenliğini sağlamak, tek seferlik bir işlem değil, bir alışkanlıklar bütünüdür. Güncellemeleri takip etmek, parola disiplinini sürdürmek ve düzenli yedek almak zamanla otomatiğe bağlanır. Bu beş adımı sırayla uyguladığınızda, saldırılara karşı çok daha dirençli bir siteye sahip olursunuz. Önemli olan, bir saldırı haberi duyduğunuzda değil, bugünden başlamaktır.
Haftalık kontrol maddesi çok doğru, teşekkürler.
Staging ortamı için hangi eklentiyi önerirsiniz? Ücretsiz bir şey var mı?
Ben de hep eski parolalara dönüyorum, kendime kızıyorum.
Altı aydır güncellenmeyen eklenti riski beni düşündürdü. E-ticaret sitesinde ödeme eklentisi için bu süre daha kısa olmalı mı? Sorun çıkmasından korkuyorum.
Üyelik sitesi işletiyorum. Büyük güncellemeleri staging’de denemek şart. Geçen sefer canlı siteyi kırmıştım, 3 saat geri dönmekle uğraştım. Artık her seferinde yedek alıp öyle güncelliyorum.
Otomatik güncelleme her zaman iyi değil bence.
Kullanılmayan temaları silmek aklıma gelmemişti. Sadece devre dışı bırakıyordum. Gerçekten arka kapı olabilir mi? Yoksa abartı mı?
Güçlü parola önerse de insanlar eskiye dönüyor demişsiniz, aynısını yaşıyorum.