Bu makalede, en yaygın WordPress hack türlerini, bunları nasıl tespit edeceğinizi ve düzeltmek için farklı yöntemleri ele alacağız. Böyle bir sorunla karşılaşırsanız, daha fazla yardım için profesyonel bir web geliştiricisiyle iletişime geçmenizi şiddetle tavsiye ederiz. Hosting hesabınızın güvenliğini artırmak için ek rehberlik almak isterseniz, lütfen bu kılavuza bakın.
ÖNEMLİ: Herhangi bir değişiklik yapmadan önce, web sitenizin tam bir yedeğini oluşturun.
LÜTFEN DİKKAT: Gelecekteki WordPress hack riskini azaltmak için düzenli olarak hosting hesabınızı antivirüs aracıyla tarayın, kötü amaçlı veya şüpheli dosyaları kaldırın ve tüm web sitenizin eklenti ve temalarını en son sürümlerine güncel tutun.
Eksik veya değiştirilmiş varsayılan dosyalara yol açabilecek çeşitli sorunlar olsa da, en yaygın neden WordPress kurulumunuza enjekte edilen kötü amaçlı yazılımdır. Neyse ki, Web ve Hosting sunucularımızdaki antivirüs araçları, tehlikeye atılmış dosyaları otomatik olarak tespit edip karantinaya alabilir.
Çekirdek WordPress dosyalarınız enfekte olursa, aşağıdaki belirtilerle karşılaşabilirsiniz:
Boş bir sayfa;
500 Internal Server Error;
Bir “Bu site teknik sorunlar yaşıyor” hatası (WordPress 5.2.2 ile tanıtıldı);
Veya benzer başka hatalar.
Bu sorunu çözmek için aşağıda belirtilen adımları uygulamanız yeterlidir.
Sitenizdeki sorunun nedenini belirlemek için error_log dosyasını inceleyin. Bu dosya, web sitenizde karşılaşılan kritik hataları kaydeder.
Bunu cPanel hesabınızda > “Dosya Yöneticisi” menüsünde > WordPress kurulumunuzun kök dizininde bulabilirsiniz.
Alan adının kök klasörüne eriştikten sonra error_log dosyasını arayın. Eğer mevcutsa, şu adımları izleyin:
Dosyaya sağ tıklayın, ardından Görüntüle seçeneğini seçin:

Kayıt dosyasında şu şekilde bir hata görebilirsiniz: “Böyle bir dosya veya dizin yok…”, ardından eksik dosyanın yolu gelir. Bu, gerekli bir dosyanın eksik olduğunu ve web sitesinin düzgün çalışmasını engellediğini gösterir.
Örneğin:/home/cPuser/public_html/wp-settings.php

Eksik dosyayı geri yüklemek için bu kılavuzun "Eksik dosyalar nasıl değiştirilir" bölümüne gidin.
Eğer error_log dosyası web sitenizin kök dizininde yoksa, cPanel hesabınızda display_errors PHP seçeneğini etkinleştirebilirsiniz. Bu ayar, hata mesajlarının doğrudan web sitenizde görünmesini sağlar ve sorunu tespit etmeyi kolaylaştırır.
Önemli: Güvenlik nedeniyle, sorun giderme işlemini bitirdikten sonra display_errors seçeneğini devre dışı bırakmayı unutmayın.
PHP seçeneğini aşağıdaki yollarla etkinleştirebilirsiniz:
php.ini ile
cPanel’in “PHP Tweaks” menüsüne ek olarak, bir web sitesi için belirli ayarları doğrudan bir php.ini dosyası üzerinden de ilgili satırları ekleyerek/düzenleyerek ayarlayabilirsiniz.
display_errors seçeneğini etkinleştirmek için dosyaya aşağıdaki satırı eklemeniz gerekir: display_errors=1
Web sitesinin kök klasöründe yeni bir php.ini dosyası oluşturup satırı oraya ekleyebilir veya aşağıdaki adımları izleyerek sistem tarafından oluşturulan dosyayı düzenleyebilirsiniz.
cPanel hesabınıza giriş yapın ve “Dosya Yöneticisi” menüsüne gidin.
Ayarlar kısmında “Gizli Dosyaları Göster (nokta dosyaları)” seçeneğinin etkin olduğundan emin olun:

Aşağıdaki dizine gidin: /home/cPanel_user/.system-php/ini

Alan adınıza atanan PHP sürümünü seçin ve ardından alan adının dizinini seçin. Örneğin, tam yol şu şekilde olabilir:
/home/cPanel_user/.system-php/ini/7.0/testwebsite.com
php.ini dosyasına sağ tıklayın ve Düzenle seçeneğini seçin.
Dosyaya aşağıdaki satırı ekleyin: display_errors=1
.htaccess ile
display_errors PHP seçeneğini .htaccess dosyası üzerinden etkinleştirmek için, web sitesinin kök dizinindeki dosyayı “Dosya Yöneticisi”nde düzenlemeniz ve aşağıdaki satırı eklemeniz gerekir:php_value display_errors 1
.htaccess dosyasının nasıl bulunacağına dair ayrıntılı adımları bu makalede bulabilirsiniz.
Değişikliklerinizi yaptıktan sonra Kaydet'e tıklayın.
WordPress, eksik veya bozuk dosyaların geri yüklenmesini oldukça kolaylaştıran basit ve düzenli bir dosya yapısı kullanır. Varsayılan çekirdek dosyaların değiştirilmesi şiddetle tavsiye edilir, çünkü kötü amaçlı yazılımdan etkilenen tüm dosyaların tamamen geri yüklendiğinden emin olmanızı sağlar. Ancak dikkatli olun: bazı dosya veya klasörlerin değiştirilmesi, düzgün yapılmazsa veri kaybına yol açabilir.
Eksik WordPress dosyalarını değiştirmek için aşağıdaki adımları izleyin:
cPanel’inize giriş yapın ve Softaculous Uygulama Yükleyici'ya gidin.
Geçici bir alt dizinde yeni bir WordPress kurulumu oluşturun. Bunu yapmak için WordPress simgesine tıklayın ve ardından Yükle seçeneğini seçin:

Kurulum ayarları sayfasına yönlendirileceksiniz. Burada, açılır menüden ilgili alan adını seçin ve Dizin İçinde alanına bir alt klasör adı girin.
Bu örnekte, WordPress kurulumu için “fix” alt klasörü kullanılmıştır:

NOT: Tüm varsayılan dosyaların değiştirilmesi, mevcut kurulumunuzu geçici “fix” kurulumunda kullanılan sürüme güncelleyecektir ve farklı sürümlerden dosyaların karıştırılması sistem çakışmalarına ve site işlevselliğinin bozulmasına neden olabilir.
Mevcut WordPress sürümünüzü korumak önemliyse veya yalnızca belirli dosyaları değiştirmeyi planlıyorsanız, sitenizin sürümünü /wp-includes/version.php dosyasında kontrol edin ve yeni kurulumun aynı WordPress sürümünü kullandığından emin olun:

Yeni kurulum için WordPress sürümünü doğrudan kurulum penceresinden seçebilirsiniz:

Tüm ayarlar yapılandırıldıktan sonra Hızlı Kurulum'a tıklayın veya kurulum sayfasının en altına inip Yükle'ye tıklayın.
Yeni WordPress kurulumu tamamlandığında, dosyaları “Dosya Yöneticisi” > alan adınızın kök dizininde görünecektir. Klasörü çift tıklayarak açın:

Belirli bir eksik dosyayı (ör. wp-settings.php) değiştirmek için, o dosyayı yeni kurulumun dizininde bulun.
Bundan sonra, dosyayı sağ tıklayarak > Taşı > web sitenizin kök klasörünün yolunu girin > Dosya(ları) taşı'ya tıklayarak mevcut kök dizine taşıyın:

İşlem tamamlandığında, eksik dosya geri yüklenmiş olur ve web siteniz artık düzgün şekilde yüklenmelidir.
Bir web sitesi için tüm varsayılan WordPress dosyalarını değiştirirken, 1-6. adımlar “Eksik WordPress dosyaları nasıl değiştirilir” bölümündekiyle aynıdır.
Bu adımlar tamamlandıktan ve yeni WordPress kurulumu oluşturulduktan sonra, web sitenizin kök klasöründeki tüm varsayılan dosyaları değiştirmek için lütfen şu adımları izleyin:
Yeni WordPress kurulumunun kök klasörünü açın:

Yeni kurulum klasörünün içinde aşağıdaki dosya ve klasörleri silin:

.htaccess
wp-config.php
wp-content
Bu dosya ve klasörler sitenizin yapılandırmasını ve içeriğini içerir ve değişmeden kalmalıdır.
Daha sonra, kalan dosyaları ana web sitenizin kök dizinine taşıyın. Bunun için Tümünü Seç düğmesini > tıklayın, Taşı > site kök klasörünüzün yolunu girin > tıklayın Dosya(ları) taşı:

WordPress çekirdek dosyalarınız tamamen değiştirildi. Her şeyin düzgün yüklendiğinden emin olmak için web sitenizi ziyaret edin.
Site hâlâ hata gösteriyorsa, tekrar error_log dosyasını kontrol edin. Çoğu durumda, ek sorunlar eksik tema veya eklenti dosyalarından kaynaklanır.
Eksik tema veya eklenti dosyaları çeşitli nedenlerle oluşabilir, ancak en yaygın neden WordPress kurulumunuzun temel bileşenlerini enfekte edip kaldıran kötü amaçlı yazılımdır.
Herhangi bir WordPress eklenti veya tema dosyanız eksikse, şunlarla karşılaşabilirsiniz:
Boş bir sayfa;
500 Internal Server Error;
Bir “Bu site teknik sorunlar yaşıyor” hatası (WordPress 5.2.2 ile tanıtıldı);
Kısmen yüklenen veya görsel olarak “bozuk” bir sayfa.
Sorunun teşhisi için yardım almak isterseniz, bu makalenin aşağıdaki bölümlerine bakın: Web sitenizin error_log dosyasını kontrol edin ve display_errors PHP seçeneğini etkinleştirin.
error_log dosyanızda veya doğrudan web sitenizde aşağıdakilere benzer hata mesajları görebilirsiniz:
PHP Fatal error: Uncaught Error: Call to undefined function sample_function() in /home/cPaneluser/...
Aşağıda, bozuk veya eksik bir eklenti dosyasından kaynaklanan bir hata örneği verilmiştir:

Eksik dosyayı geri yüklemek için, etkilenen tema veya eklentiyi yeniden yükleyin.
NOT: Temalarda eksik functions.php dosyaları genellikle wp-vcd.php kötü amaçlı yazılımıyla ilişkilidir ve genellikle /wp-includes dizininde bulunur. Yeni bir tema yüklemeden önce wp-vcd.php dosyasını kaldırın (varsa) veya tam güvenlik sağlamak istiyorsanız, yukarıda açıklandığı gibi tüm varsayılan WordPress dosyalarını değiştirin önceden.
Bazı durumlarda, web siteniz kötü amaçlı yazılımla enfekte olduğunda, ziyaretçileri zararlı veya şüpheli sayfalara yönlendirmeye başlayabilir. Bu sorun genellikle güvensiz bir eklenti veya temadan kaynaklanır ve saldırganların veritabanı URL’lerini değiştirmesine veya web sitenizin dosyalarını düzenlemesine olanak tanır.
NOT: Yönlendirilen bağlantılara asla tıklamayın. Bunu yapmak kişisel bilgisayarınıza kötü amaçlı yazılım bulaştırabilir:

Kötü amaçlı yönlendirmeleri düzeltmek için aşağıdaki adımları izleyin:
Web siteniz için bir veritabanı yapılandırma dosyası bulun - wp-config.php dosyasını cPanel > Dosya Yöneticisi > web sitesinin kök klasöründe bulabilirsiniz. Dosyayı açın ve web sitesinin veritabanı adını bulun:

Daha sonra, cPanel’inizdeki phpMyAdmin menüsünden web sitenize atanan veritabanını açın ve wp_options tablosuna gidin (“wp_” varsayılan önektir; sizde farklı olabilir):

Aşağıdaki alanların değerlerini inceleyin: siteurl ve home . Eğer burada kötü amaçlı veya şüpheli URL’ler görürseniz, bunları gerçek alan adınızla değiştirin:

Veritabanınızın geri kalanını da benzer kötü amaçlı URL’ler için tarayın ve gerektiği şekilde değiştirin.
Geçici olarak mevcut .htaccess dosyanızı temiz bir varsayılan sürümle değiştirin. Mevcut dosyanın adını değiştirmek en iyisidir (ör. .htaccess_old) ve sıfırdan yeni bir tane oluşturun.
Dosyanın adını değiştirmek için, dosyaya çift tıklayın > listeden Yeniden Adlandır seçeneğini seçin > yeni dosya adını girin > ve Dosyayı yeniden adlandır'a basın.
Bundan sonra, yeni bir dosya oluşturmak için + Dosya'ya tıklayın > adını .htaccess olarak girin > ve Yeni Dosya Oluştur'u seçin.
Yeni .htaccess dosyası oluşturulduktan sonra, dosyaya sağ tıklayarak > listeden Düzenle seçeneğini seçin. Düzenleme penceresi açıldığında, aşağıdaki varsayılan WordPress kurallarını dosyaya yapıştırın:# BEGIN WordPressRewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]# END WordPress
Değişiklikleri Kaydet'e tıklayın.
Web siteniz yönlendirmeye devam ediyorsa, tüm varsayılan WordPress çekirdek dosyalarını değiştirmeyi deneyin.
Ayrıca, WordPress kontrol paneli veya veritabanı üzerinden tüm eklentileri geçici olarak devre dışı bırakabilir ve ardından tek tek etkinleştirebilirsiniz. Her eklenti etkinleştirildiğinde, kötü amaçlı yönlendirme sorununa hangi eklentinin neden olduğunu tespit etmek için web sitesini kontrol edin.