В тази статия ще обсъдим най-често срещаните видове хакове на WordPress, как да ги разпознаете и различните методи за тяхното отстраняване. Ако се сблъскате с такъв проблем, силно препоръчваме да се свържете с професионален уеб разработчик за допълнителна помощ. За повече насоки относно подобряване на сигурността на вашия хостинг акаунт, моля, вижте това ръководство.
ВАЖНО: Преди да направите каквито и да е промени, създайте пълно архивно копие на вашия уебсайт.
МОЛЯ, ОБЪРНЕТЕ ВНИМАНИЕ: За да намалите риска от бъдещи хакове на WordPress, редовно сканирайте вашия хостинг акаунт с антивирусен инструмент, премахвайте всички зловредни или подозрителни файлове и поддържайте всички плъгини и теми на вашия уебсайт актуализирани до последните им версии.
Докато различни проблеми могат да доведат до липсващи или променени стандартни файлове, най-честата причина е зловреден софтуер, инжектиран във вашата WordPress инсталация. За щастие, антивирусните инструменти на нашите Web и Hosting сървъри могат автоматично да откриват и поставят под карантина компрометирани файлове.
Ако основните WordPress файлове бъдат заразени, може да срещнете следните симптоми:
Празна страница;
Грешка 500 Internal Server Error;
Грешка „Този сайт изпитва технически проблеми“ (въведена в WordPress 5.2.2);
Или други подобни грешки.
За да отстраните този проблем, просто следвайте стъпките по-долу.
За да установите какво е причинило проблема на вашия сайт, прегледайте файла error_log. Този файл записва всички критични грешки, които възникват на вашия уебсайт.
Можете да го намерите във вашия cPanel акаунт > менюто „File Manager“ > основната директория на вашата WordPress инсталация.
След като влезете в основната папка на домейна, потърсете файла error_log. Ако съществува, следвайте тези стъпки:
Кликнете с десния бутон върху файла, след това изберете Преглед:

В лога може да видите грешка като: „No such file or directory in…“, последвана от пътя на липсващия файл. Това показва, че необходим файл липсва и пречи на правилната работа на уебсайта.
Например:/home/cPuser/public_html/wp-settings.php

За да възстановите липсващия файл, превъртете надолу до секцията "Как да замените липсващите файлове" в това ръководство.
Ако файлът error_log не е наличен в основната директория на вашия уебсайт, можете да активирате опцията display_errors в PHP през вашия cPanel акаунт. Тази настройка позволява съобщенията за грешки да се показват директно на вашия уебсайт, което улеснява идентифицирането на проблема.
Важно: От съображения за сигурност, не забравяйте да деактивирате display_errors след като приключите с отстраняването на проблема.
Можете да активирате PHP опцията по следните начини:
Чрез php.ini
Освен чрез менюто „PHP Tweaks“ в cPanel, можете да коригирате определени настройки за даден уебсайт директно чрез файл php.ini, като добавите/редактирате съответните редове в него.
За да активирате опцията display_errors, трябва да добавите следния ред във файла: display_errors=1
Можете или да създадете нов php.ini файл в основната папка на уебсайта и да добавите реда там, или да редактирате системно генерирания файл, като следвате стъпките по-долу.
Влезте във вашия cPanel акаунт и отидете в менюто „File Manager“.
Уверете се, че опцията „Show Hidden Files (dotfiles)“ е активирана в настройките:

Навигирайте до следната директория: /home/cPanel_user/.system-php/ini

Изберете PHP версията, която е зададена за вашия домейн, и след това изберете директорията на домейна. Например, пълният път може да изглежда така:
/home/cPanel_user/.system-php/ini/7.0/testwebsite.com
Кликнете с десния бутон върху файла php.ini и изберете Редактиране.
Добавете следния ред във файла: display_errors=1
Чрез .htaccess
За да активирате опцията display_errors в PHP чрез файла .htaccess, трябва да редактирате файла в основната директория на уебсайта през „File Manager“ и да добавите следния ред там:php_value display_errors 1
Подробните стъпки за намиране на файла .htaccess можете да намерите в тази статия.
След като направите промените, кликнете върху Запази.
WordPress използва проста и организирана файлова структура, което прави възстановяването на липсващи или повредени файлове сравнително лесно. Силно се препоръчва да замените стандартните основни файлове, тъй като това гарантира, че всички файлове, компрометирани от зловреден софтуер, са напълно възстановени. Въпреки това, бъдете внимателни: замяната на определени файлове или папки може да доведе до загуба на данни, ако не се извърши правилно.
Следвайте стъпките по-долу, за да замените липсващи WordPress файлове:
Влезте във вашия cPanel и отидете в Softaculous Apps Installer.
Създайте нова WordPress инсталация в временна поддиректория. За да направите това, кликнете върху иконата WordPress и след това изберете Инсталирай:

Ще бъдете пренасочени към страницата с настройки за инсталация. Там изберете съответния домейн от падащото меню и въведете името на поддиректория в полето В директория.
В този пример използваме поддиректорията „fix“ за WordPress инсталацията:

ЗАБЕЛЕЖКА: Замяната на всички стандартни файлове ще актуализира съществуващата ви инсталация до версията, използвана във временната инсталация „fix“, а смесването на файлове от различни версии може да причини системни конфликти и да наруши функционалността на сайта.
Ако е важно да запазите текущата версия на WordPress или ако планирате да замените само определени файлове, проверете версията на сайта си във файла /wp-includes/version.php и се уверете, че новата инсталация използва същата версия на WordPress:

Можете да изберете версията на WordPress за новата инсталация директно в прозореца за инсталиране:

След като всички настройки са конфигурирани, кликнете върху Бърза инсталация или превъртете до дъното на страницата за инсталация и кликнете върху Инсталирай.
След като новата WordPress инсталация приключи, нейните файлове ще се появят в „File Manager“ > основната директория на вашия домейн. Отворете папката с двоен клик:

За да замените конкретен липсващ файл (например wp-settings.php), намерете този файл в директорията на новата инсталация.
След това преместете файла в текущата основна директория на вашия уебсайт, като кликнете с десния бутон върху файла > изберете Премести > въведете пътя до основната папка на вашия уебсайт > кликнете върху Премести файл(ове):

След като приключите, липсващият файл е възстановен и вашият уебсайт трябва да се зарежда правилно.
В процеса на замяна на всички стандартни WordPress файлове за даден уебсайт, стъпки 1-6 са същите като в секцията „Как да замените липсващи WordPress файлове“.
След като тези стъпки са изпълнени и новата WordPress инсталация е създадена, за да замените всички стандартни файлове в основната папка на вашия уебсайт, следвайте тези стъпки:
Отворете основната папка на новата WordPress инсталация:

Вътре в новата инсталационна папка изтрийте следните файлове и папки:

.htaccess
wp-config.php
wp-content
Тези файлове и папки съдържат конфигурацията и съдържанието на вашия сайт и трябва да останат непроменени.
След това преместете останалите файлове в основната директория на вашия основен уебсайт. За целта използвайте бутона Избери всички > кликнете върху Премести > въведете пътя до основната папка на сайта си > кликнете върху Премести файл(ове):

Основните файлове на WordPress са напълно заменени. Посетете вашия уебсайт, за да се уверите, че всичко се зарежда правилно.
Ако сайтът все още показва грешки, проверете отново error_log. В повечето случаи допълнителните проблеми се дължат на липсващи файлове на тема или плъгин.
Липсващи файлове на тема или плъгин могат да се появят по различни причини, но най-честата е зловреден софтуер, който заразява и премахва основни компоненти от вашата WordPress инсталация.
Ако някой от файловете на вашите WordPress плъгини или теми липсва, може да срещнете:
Празна страница;
Грешка 500 Internal Server Error;
Грешка „Този сайт изпитва технически проблеми“ (въведена в WordPress 5.2.2);
Частично заредена или визуално „счупена“ страница.
За помощ при диагностициране на проблема, вижте следните секции от тази статия: Проверете файла error_log на вашия уебсайт и Активирайте опцията display_errors в PHP.
В error_log или директно на уебсайта може да видите съобщения за грешки, подобни на следните:
PHP Fatal error: Uncaught Error: Call to undefined function sample_function() in /home/cPaneluser/...
По-долу е даден пример за грешка, причинена от повреден или липсващ плъгин файл:

За да възстановите липсващия файл, просто преинсталирайте засегнатата тема или плъгин.
ЗАБЕЛЕЖКА: Липсващите файлове functions.php в темите често са свързани със зловредния софтуер wp-vcd.php, който обикновено се намира в директорията /wp-includes. Преди да инсталирате нова тема, премахнете wp-vcd.php, ако съществува, или ако искате пълна сигурност, заменете всички стандартни WordPress файлове, както е описано по-рано.
В някои случаи, когато вашият уебсайт бъде заразен със зловреден софтуер, той може да започне да пренасочва посетителите към вредни или подозрителни страници. Този проблем най-често се причинява от несигурен плъгин или тема, които позволяват на нападателите да променят URL адреси в базата данни или да редактират файлове на вашия уебсайт.
ЗАБЕЛЕЖКА: Никога не кликвайте върху някой от пренасочените линкове. Това може да зарази вашия компютър със зловреден софтуер:

За да отстраните зловредните пренасочвания, следвайте стъпките по-долу:
Намерете файл с конфигурация на базата данни за вашия уебсайт - wp-config.php във вашия cPanel > File Manager > основната папка на уебсайта. Отворете файла и намерете името на базата данни на уебсайта:

След това отворете базата данни, която е зададена за вашия уебсайт, в менюто phpMyAdmin на вашия cPanel, като кликнете върху нея, и навигирайте до таблицата wp_options („wp_“ е стандартният префикс; вашият може да е различен):

Прегледайте стойностите на полетата siteurl и home и ако видите зловредни или подозрителни URL адреси там, ги заменете с вашия реален домейн:

Сканирайте останалата част от базата данни за подобни зловредни URL адреси и ги заменете съответно.
Временно заменете текущия си .htaccess с чиста стандартна версия. Най-добре е да преименувате съществуващия файл (например .htaccess_old) и да създадете нов от нулата.
За да преименувате файла, кликнете два пъти върху него > изберете Преименувай от списъка > въведете ново име на файла > и натиснете Преименувай файл.
След това, за да създадете нов файл, кликнете върху + Файл > дайте му име .htaccess > и изберете Създай нов файл.
След като новият .htaccess е създаден, редактирайте го, като кликнете с десния бутон върху него > изберете Редактиране от списъка. След като се отвори прозорецът за редакция, поставете следните стандартни WordPress правила във файла:# BEGIN WordPressRewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]# END WordPress
Кликнете върху Запази промените.
Ако вашият уебсайт продължава да пренасочва, опитайте да замените всички стандартни WordPress основни файлове.
Можете също временно да деактивирате всички плъгини през WordPress таблото или базата данни и да ги активирате един по един. След като всеки плъгин е активиран, проверете уебсайта, за да откриете кой причинява проблема със зловредното пренасочване.