Güvenlik konusundaki en yaygın yanılgı, hedef olmak için önemli bir site olmak gerektiği inancıdır. Gerçek bunun tam tersi: saldırıların büyük çoğunluğu belirli bir siteyi hedeflemez. Otomatik botlar internette gezinir, bilinen açıkları tarar ve bulduğu her sitede aynı kalıbı dener. Sitenizin ne kadar bilindik olduğu, botun umurunda değildir.
WordPress’in kendisi, düzgün yönetildiğinde güvenli bir yazılımdır. Sorunların ezici çoğunluğu üç yerden gelir: güncellenmemiş eklentiler, zayıf parolalar ve yetersiz sunucu yapılandırması. Bu yazıda, uyguladığım 12 katmanlı güvenlik yaklaşımını sırayla anlatacağım. Katman fikri önemli: hiçbir tekil önlem tek başına yeterli değildir, ama üst üste bindiğinde saldırı maliyetini karşılanamaz hale getirirler.
1. Güncelleme Disiplini
Hacklenen sitelerin büyük bölümünde ortak nokta, aylardır güncellenmemiş bir eklentidir. Bir güvenlik açığı kamuya duyurulduğunda, aynı gün içinde o açığı tarayan botlar devreye girer. Yani “sonra güncellerim” penceresi saatlerle ölçülür.
Sağlıklı bir güncelleme rutini şöyledir: test ortamında güncellemeleri uygulayın, sitenin kritik akışlarını (form, ödeme, giriş) kontrol edin, sorun yoksa canlıya alın. Güvenlik güncellemelerini beklemeyin, hemen uygulayın.
Kullanmadığınız tema ve eklentileri devre dışı bırakmakla yetinmeyin; silin. Devre dışı bir eklentinin dosyaları sunucuda durur ve açık barındırabilir.
2. Güçlü Kimlik Doğrulama
Kaba kuvvet saldırıları hâlâ en yaygın giriş denemesidir. Önlemler:
- Her yönetici hesabı için uzun ve benzersiz parola
- İki faktörlü doğrulama (2FA) — özellikle yönetici rolündeki tüm hesaplarda
- “admin” kullanıcı adından kaçınma
- Giriş denemesi sınırlaması ve geçici IP engelleme
- Giriş sayfasına erişimi mümkünse IP ile kısıtlama veya adresi değiştirme
Parola yöneticisi kullanımı ekip içinde zorunlu hale getirilmeli. Paylaşılan hesap yerine, herkese kendi hesabı açılmalı; böylece kim ne yaptı izlenebilir ve ayrılan çalışanın erişimi tek tıkla kapatılır.
3. Kullanıcı Rolleri ve En Az Yetki İlkesi
Herkesin yönetici olduğu bir sitede, ele geçirilen her hesap tam yetki demektir. Roller ihtiyaca göre dağıtılmalı: içerik yazan kişi Yazar, düzenleyen kişi Editör, yalnızca sipariş yöneten kişi Mağaza Yöneticisi olmalı.
Yönetici sayısını mümkün olan en aza indirin. Dışarıdan destek alan kişilere kalıcı yönetici hesabı vermek yerine, iş bitiminde kapatılan geçici hesaplar açın.
4. Sunucu Düzeyinde Koruma
Eklenti düzeyindeki güvenlik, saldırı WordPress’e ulaştıktan sonra devreye girer. Sunucu düzeyindeki koruma ise saldırıyı kapıda durdurur. Web uygulama güvenlik duvarı (WAF), bilinen saldırı kalıplarını isteği işlemeden reddeder.
Ayrıca: dosya izinlerinin doğru ayarlanması, PHP’nin güncel sürümde tutulması, gereksiz portların kapatılması ve sunucudaki siteler arası izolasyon sağlanması bu katmanın parçalarıdır.
5. Dosya Bütünlüğü İzleme
Bir sitenin ele geçirildiği çoğu zaman haftalar sonra fark edilir. Dosya bütünlüğü izleme, çekirdek ve tema dosyalarında beklenmedik bir değişiklik olduğunda uyarı verir. Bu, en erken teşhis aracıdır.
İzlenmesi gereken tipik işaretler: yeni oluşan PHP dosyaları, yükleme klasöründe çalıştırılabilir dosyalar, sizin oluşturmadığınız yönetici hesapları, veritabanında beklenmedik yönlendirme kodları.
6. Yedekleme ve Geri Yükleme
Yedek, güvenliğin son savunma hattıdır. Kriterler: düzenli sıklık, sunucu dışında saklama, sürüm geçmişi ve en önemlisi test edilmiş geri yükleme.
Denenmemiş bir yedek, olmayan bir yedektir. Üç ayda bir yedeği test ortamına geri yükleyip çalıştığını doğrulayın.
7. SSL ve Güvenli Bağlantı
SSL bugün asgari gerekliliktir. Tüm HTTP istekleri HTTPS’e yönlendirilmeli, karışık içerik (mixed content) uyarıları giderilmeli ve sertifika yenilenmesi otomatikleştirilmelidir. Süresi dolmuş sertifika, ziyaretçiye “bu site güvenli değil” uyarısı gösterir ve trafiği anında düşürür.
8. Yönetim Paneli Erişiminin Kısıtlanması
Yönetim paneli internetin tamamına açık olmak zorunda değildir. Erişimi belirli IP adresleriyle sınırlamak, ekstra bir HTTP kimlik doğrulama katmanı eklemek veya VPN arkasına almak, kaba kuvvet saldırılarını sıfıra indirir.
Küçük ekipler için bu, en yüksek getirili önlemlerden biridir ve kurulumu birkaç dakika sürer.
9. Eklenti Seçim Disiplini
Her eklenti yeni bir saldırı yüzeyidir. Kurmadan önce sorun: Son ne zaman güncellendi? Kaç etkin kurulumu var? Geliştirici bilinen ve sürdürülebilir bir ekip mi? Aynı işi çekirdek özelliklerle veya birkaç satır kodla yapabilir miyim?
Bedava temalar için ekstra uyarı: resmi dizin dışından indirilen “premium ücretsiz” temalar, en sık kötü amaçlı kod taşıyan kaynaktır.
10. XML-RPC ve Uç Nokta Yönetimi
XML-RPC arayüzü, çoğu modern sitede kullanılmayan ama saldırganların kaba kuvvet ve amplifikasyon saldırılarında tercih ettiği bir uç noktadır. İhtiyacınız yoksa kapatın.
Benzer biçimde, REST API üzerinden kullanıcı listesinin herkese açık olması gerekmez; kullanıcı adlarının toplanmasını engellemek için bu uç nokta yetkilendirmeye bağlanabilir.
11. Spam ve Form Güvenliği
İletişim ve yorum formları, hem spam hem enjeksiyon denemeleri için kapıdır. Alınacak önlemler: bot doğrulama (görünmez captcha tercih edilir), gönderim hız sınırlaması, dosya yükleme alanlarında tür ve boyut kısıtı, gelen verinin sunucu tarafında temizlenmesi.
Dosya yükleme özelliği varsa özellikle dikkatli olun: yüklenen dosyaların çalıştırılabilir olmadığından ve doğrudan erişime kapalı bir dizinde saklandığından emin olun.
12. İzleme ve Olay Planı
Son katman, bir şey olduğunda ne yapacağınızın önceden belli olmasıdır. Basit bir olay planı şunları içerir: siteyi kim, hangi yetkiyle bakım moduna alacak; yedekler nerede ve nasıl geri yüklenecek; hosting desteğine kim ulaşacak; müşterilere ne zaman ve nasıl bilgi verilecek.
Ayrıca çalışma süresi (uptime) izleme kurun. Sitenizin çöktüğünü müşterinizden öğrenmek, en pahalı öğrenme biçimidir.
Hacklendiyseniz Ne Yapmalı?
Panik yapıp dosyaları rastgele silmek en kötü tepkidir. Sırayla ilerleyin:
- Siteyi bakım moduna alın veya geçici olarak erişime kapatın
- Tüm parolaları değiştirin (yönetici hesapları, FTP, veritabanı, hosting paneli)
- Mevcut durumun bir kopyasını alın — delil ve inceleme için gerekir
- Temiz bir yedeğe dönün; hangi tarihten sonra bulaştığını belirleyin
- WordPress çekirdeğini, tema ve eklentileri temiz kopyalarla değiştirin
- Beklenmedik yönetici hesaplarını ve zamanlanmış görevleri temizleyin
- Açığın nereden geldiğini bulun — bulmadan yayına almayın, aksi halde tekrar eder
- Search Console’da güvenlik sorunu bildirimi varsa, temizlik sonrası inceleme talep edin
Güvenlik Eklentisi Yeterli mi?
Piyasadaki güvenlik eklentileri iyi araçlardır ve doğru yapılandırıldıklarında ciddi fayda sağlarlar. Ancak sıkça yaşanan bir yanılgı var: eklenti kurulduğu anda işin bittiğinin varsayılması.
Bir güvenlik eklentisinin gerçekten yaptığı işler sınırlıdır. Giriş denemelerini sınırlar, dosya değişikliklerini izler, bilinen zararlı kalıpları tarar ve bazı istekleri filtreler. Yapamadıkları ise şunlardır: güncellenmemiş bir eklentideki açığı kapatamaz, zayıf bir parolayı güçlendiremez, yanlış yapılandırılmış dosya izinlerini düzeltemez, sunucu düzeyindeki bir zafiyeti telafi edemez.
Ayrıca güvenlik eklentilerinin kendisi de bir eklentidir ve bakım gerektirir. Aşırı agresif ayarlarla yapılandırıldığında meşru ziyaretçileri engelleyebilir, arama motoru botlarını bloklayabilir veya sitenin performansını düşürebilir. Kurulumdan sonra en az bir hafta boyunca günlükleri inceleyip yanlış pozitifleri ayıklamak gerekir.
Doğru bakış açısı şudur: güvenlik eklentisi, katmanlardan biridir. Tek başına savunma değil, savunmanın bir parçasıdır.
Üçüncü Taraf Bağımlılıkları
Modern bir kurumsal site nadiren tek başına çalışır. Ödeme sağlayıcıları, e-posta pazarlama araçları, sohbet widget’ları, analitik servisleri, rezervasyon sistemleri — her biri sitenize kod enjekte eder ve her biri bir güven ilişkisidir.
Bu bağımlılıkları yönetmek için basit bir disiplin öneriyorum. Sitenize kod ekleyen her üçüncü taraf servisini bir listeye yazın; her biri için neyin ne amaçla eklendiğini, hangi verilere eriştiğini ve hesabın kime ait olduğunu not edin. Kullanılmayan servisleri kodlarıyla birlikte kaldırın.
Özellikle etiket yöneticileri dikkat gerektirir. Etiket yöneticisine erişimi olan bir kişi, teknik olarak sitenize istediği JavaScript’i ekleyebilir. Bu erişim, yönetici erişimi kadar hassas sayılmalıdır.
Ekip İçi Farkındalık
Teknik önlemlerin çoğu, insan hatasıyla aşılabilir. En yaygın senaryo, kimlik avı (phishing) e-postasıyla yönetici bilgilerinin ele geçirilmesidir. “WordPress güvenlik güncellemesi gerekiyor, giriş yapın” başlıklı sahte bir e-posta, en iyi kurulmuş güvenlik duvarını devre dışı bırakabilir.
Ekibinize üç basit kural öğretin: giriş yapmadan önce adres çubuğundaki alan adını kontrol edin, e-postadaki bağlantıya tıklayarak yönetim paneline girmeyin (adresi kendiniz yazın), ve hiçbir koşulda hesap bilgisi paylaşmayın. Bu üç kural, insan kaynaklı riskin büyük kısmını ortadan kaldırır.
Sonuç
Güvenlik bir ürün değil, bir alışkanlıktır. Tek bir eklenti kurup “artık güvendeyiz” demek mümkün değil; ama düzenli güncelleme, güçlü kimlik doğrulama, sunucu düzeyinde koruma ve test edilmiş yedek dörtlüsü, riskin büyük kısmını ortadan kaldırır.
Sitenizin güvenlik durumunu inceleyip eksikleri önceliklendirilmiş bir listeye dökmemi isterseniz iletişime geçebilirsiniz.