Hacklenmiş Bir WordPress Sitesini Onarma

WordPress hack'leri ciddi fakat çözülebilir. Offline alıp tam yedek alarak başlayın, arka kapıları sistemli biçimde temizleyin, veritabanı ve dosya izinlerini düzeltin.

WordPress, küresel web sitelerinin %43’ünden fazlasını güçlendirmesine rağmen, bu yaygınlığı hackerların hedefi haline getirmiştir. Bir WordPress sitesi hack edildiğinde, sahipleri genellikle panik içinde bulur ve hızlı çözüm ararlar. Ancak acıyla yapılan işlemler çoğu zaman daha büyük sorunlara yol açar. Bu rehber, hacklenmiş WordPress sitelerini profesyonel şekilde nasıl onarılacağını, tehditleri nasıl tespit edileceğini ve gelecekte nasıl korunacağını ayrıntılı olarak açıklamaktadır.

Siteyi Hacklenmiş Olarak Tanıma İşaretleri

Bir WordPress sitesinin hack edildiğinden şüphelenmeniz için birçok belirtgi var. Arama motoru sonuçlarında beklenmeyen sayfalar görünüyorsa, bu spam enjeksiyonunun en yaygın işaretidir. Google Search Console’da incelenmedik içerikler listelenmiş olabilir. İş e-posta adresine Google, Yandex veya Bing’den güvenlik uyarısı aldıysanız, site zaten listelerinde tehdit olarak işaretlenmiştir.

Siteyi ziyaret ettiğinizde beklenmeyen yönlendirmelerle karşılaşabilirsiniz veya tarayıcı uyarısı alabilirsiniz. Başka bir siteye veya kötü niyetli kaynaklara otomatik yönlendirme olması çok yaygın bir hack türüdür. Aynı zamanda site performansının anormal biçimde düşmesi, yüksek CPU/bellek kullanımı veya veritabanı sorgularının yavaşlaması da işaret olabilir.

Admin paneline erişemiyorsanız veya oturum açtığınız halde kilitlenmişseniz, hacker erişim şifrelerini değiştirmiş olabilir. Ayrıca kontrol etmediğiniz yeni kullanıcı hesaplarının oluşturulmuş olması, admin hesaplarının değiştirilmiş olması veya wp-config.php dosyasının değişime uğraması teknik kanıtlardır. Server günlüklerinde (error_log veya access.log) normal dışı isteklerin yoğunluğu, garip PHP dosyaları veya SQL sorguları ise server seviyesinde tecavüz işaretleridir.

Hemen Yapılması Gereken İlk Adımlar

Hack tespit ettiğinizde, ilk hareket siteyi offline almaktır. WordPress yönetim panelinde “Bakım Modu” etkinleştirin veya .htaccess dosyasına basit bir yönlendirme kuralı ekleyin. Bu, hackerın daha fazla zarar vermesini durdurur ve ziyaretçilerinizi kötü niyetli koddan korur.

Veritabanının tam yedek kopyasını anında alın. Sonraki adımlarda arama ve değiştirme işlemleri yapacaksınız, ama her zaman geri dönüş imkanı olmalıdır. FTP/SFTP aracılığıyla public_html veya wp-content klasörünün de tamamını indirin. Bu yedeklemeler, temizlemeden sonra sorun yaşadığınız durumda kritik olacaktır.

Şifreleri acilen değiştirin, ancak hacker arka kapılarını temizlemeden değil. Aksi takdirde yeni şifreleri yine ele geçirir. İlk olarak tüm FTP ve cPanel kullanıcılarının parolalarını değiştirin, ardından WordPress admin ve tüm kullanıcı şifrelerini sıfırlayın. E-posta hizmet sağlayıcınızdan kullanılan e-posta hesaplarının iki faktörlü kimlik doğrulamasını hemen aktifleştirin.

Arka Kapıları ve Kötü Niyetli Dosyaları Temizleme

Hackerlar genellikle arka kapı dosyaları (backdoor files) bırakırlar. Bunlar shell.php, admin.php, c99.php gibi isimlerle wp-content, wp-includes veya site kökünde saklanır. FTP ile bağlanıp, tüm klasörleri tarayın. PHP dosyalarının değişim tarihlerine dikkat edin—son zamanda oluşturulan PHP dosyaları şüphelidir.

Eklenti ve tema dosyaları çok önemlidir. Hackerler sık olarak eklenti dosyalarının içine malicious kod eklerler. wp-content/plugins klasöründe baktığınız zaman, yüklü olmadığını düşündüğünüz eklentiler varsa bunlar arka kapı olabilir. functions.php dosyasını açın ve satırın sonundan başlayarak tarayın—çoğu hacker kodunu dosyanın en sonuna ekler. Tema dosyasındaki functions.php dosyası da tehlikeli olabilir.

wp-includes klasörünü kontrol etmek dikkat gerektirir çünkü bu klasörü modifiye etmek ileri seviye hack yapan kişileri gösterir. Eğer wp-includes içinde PHP dosyaları varsa, bunları araştırın. Normal koşulda WordPress bu klasöre yeni dosya eklemez.

Veritabanı seviyesinde temizleme de gerekir. phpMyAdmin’e girin ve wp_options tablosuna bakın. home, siteurl gibi temel ayarlar normal URL’ler olmalıdır. Eğer garip linkler varsa, hacker SEO spam kurmaya çalışıyor demektir. wp_posts tablosunu sorguyla tarayın:

SELECT * FROM wp_posts WHERE post_title LIKE '%viagra%' OR post_title LIKE '%casino%'

Bu gibi spam başlıklar bulursanız silin. Ayrıca wp_users tablosunda kontrol etmediğiniz yeni admin hesapları varsa silerek başlayın.

Eklenti ve Tema Temizliği

Sitede kullanmadığınız eklentiler silin. Pasif eklentiler bile güvenlik riski oluşturu. Tema klasöründe kullanmadığınız başka temalar varsa silerek başlayın. Aktif temayı yeniden kurun—WordPress admin panelinden silerip tema deposundan yeniden indirin.

Tüm eklentileri silin ve yeniden yükleyin. Bunu yapmak aşırı görünebilir, ancak hack durumunda bu işlem gerekir. Eklenti dosyalarındaki kötü niyetli kod, sadece adını girerek bulunmayabilir. FTP aracılığıyla wp-content/plugins klasörünün tümünü silin, ardından WordPress admin panelinden ihtiyacınız olan eklentileri taze yükleyin.

İşletim Sistemi ve Veritabanı Seviyesinde Güvenlik Açıkları

WordPress’in kendisini güncel sürüme güncelleyin. Eski sürümlerin bilinen güvenlik açıkları vardır. Tüm eklentileri ve temayı da güncel hale getirin. Hatta kullandığınız WordPress sürümünün güvenlik güncellemelerine dikkat edin—WordPress 5.7 ve öncesindeki sürümler bir kaç önemli açığı taşır.

Sunucuda PHP sürümünü kontrol edin. PHP 7.2’den düşük sürümler kullanıyorsanız, hosting sağlayıcınızdan güncel PHP sürümüne geçmesini isteyin. Eski PHP sürümleri her gün yeni açıklar ortaya çıkar.

.htaccess dosyasını kontrol etmek çok önemlidir. Hackerlar burayı kötü amaçlı yönlendirme kuralları eklemek için değiştirir. Dosyayı açıp, normal WordPress kurallarından (genellikle permalink yapısı) daha fazlası varsa temizleyin. Şüpheli yönlendirme satırları varsa silin.

wp-config.php dosyasının izinlerini 644’e ayarlayın. Bu dosya yazılabilir olmamalıdır. FTP aracılığıyla sağ tıklayıp “İzinleri Değiştir” seçeneğinden bunu yapabilirsiniz.

Veritabanı Temizliği Adım Adım

Veritabanında spam sonrası yapılan değişiklikleri temizlemek için ayrıntılı sorguyla çalışmanız gerekebilir. wp_postmeta tablosunda garip meta veriler varsa silin. wp_comments tablosuna spam yorumlar eklenmiş olabilir—bunları silin.

Oturum/nonce değerlerini sıfırlamak için:

DELETE FROM wp_options WHERE option_name LIKE '%_transient%'

Bu komutu phpMyAdmin’de çalıştırarak tüm geçici seçenekleri temizleyin. WordPress bu seçenekleri yeniden oluşturacaktır.

Veritabanı düzeyinde çok önemli bir adım: Veritabanı parolasını değiştirin. wp-config.php dosyasında DB_PASSWORD değerini güncelleyin.

Arama Motoru Güvenlik Listelerinden Çıkma

Google Search Console’da sitenizi doğruladığınızda, varsa “Güvenlik Sorunu” bölümünü açın. Google şikayetçi olduğu sayfaları listeler. Bu sayfaları silin veya düzeltin.

WordPress Admin panelinden Tools > Remove Malware gibi bir eklenti kurabilirsiniz. Wordfence veya Sucuri gibi güvenlik eklentileri, malware taraması yapabilir. Ancak bunları kurmadan önce veritabanı ve dosya seviyesinde temizlik yapın.

Temizledikten sonra Search Console’da “Yeniden İncelemeyi İste” tuşuna basın. Google sitenizi yeniden tarar ve tehdit listesinden çıkarır. Bu işlem haftalar sürebilir.

Uzun Vadeli Güvenlik Stratejisi

Situnuzu tekrar hack edilmekten korumak için:

Güvenlik eklentisi yükleyin. Wordfence, iThemes Security veya Sucuri gibi eklentiler gerçek zamanlı tehditleri algılar, güvenlik duvarı kurallarıdır ve dosya izleme sağlar.

Dosya izinlerini kontrol edin. wp-content klasörü 755, wp-config.php dosyası 600 olmalıdır. /uploads klasörü içindeki PHP dosyalarının çalıştırılmasını engellemek için .htaccess kuralı ekleyin:

<FilesMatch "\.php$">
Deny from all
</FilesMatch>

SFTP kullanın, FTP’yi silin. FTP şifresiz iletilir ve hackerlar bunu yakalayabilir. SFTP şifrelidir ve çok daha güvenlidir.

Otomatik yedeklemeler kurun. UpdraftPlus veya BackWPup gibi eklentiler günlük yedeklemeler alabilir ve bulut depolamaya kaydedebilir. Hack durumunda önceki temiz sürüme dönebilirsiniz.

Oturum zaman aşımlarını kısaltın. wp-config.php’ye ekleyin:

define('AUTH_COOKIE', 2 * 24 * 60 * 60);

Bu, oturum açıkça kapatılmadıkça 2 gün sonra sonlanır.

Düzenli olarak debug.log dosyasını kontrol edin. wp-content/debug.log kritik hataları ve uyarıları kaydeder. Garip uyarılar varsa araştırın.


İleri Okuma ve Kaynaklar

  • Wordfence Security Plugin Documentation — Gerçek zamanlı tehdit algılama ve güvenlik duvarı ayarları
  • WordPress Security Hardening Guide — Resmi WordPress güvenlik protokolleri
  • How to Clean a Hacked WordPress Site – Sucuri Blog — Adım adım hacking onarım süreci
WPW

WPW

İçerik yazarı, teknolojiye meraklı, grafik tasarımcı, sosyal medya ve seo danışmanı...

Articles: 924