Хакнат сайт на WordPress: почистване и защита
Признаци за компрометиран сайт на WordPress, почистване стъпка по стъпка и настройки, които предотвратяват повторна атака.
WordPress е най-разпространената платформа за сайтове и онлайн магазини, затова е и най-честата цел на автоматизирани атаки. Повечето пробиви се дължат на необновени плъгини, пиратски теми и слаби пароли, а не на самия WordPress.
Признаци
- сайтът пренасочва посетителите към реклами, казина или фалшиви магазини, често само от мобилни устройства или при влизане от Google;
- Google показва предупреждение, че сайтът може да е хакнат, или Search Console съобщава за проблеми със сигурността;
- в администрацията има потребители, които не сте създали;
- хостинг доставчикът е спрял сайта заради зловреден код или изпращане на спам.
Преди почистването
Направете пълно копие на файловете и базата данни в текущото им състояние. То е нужно, за да се установи как е станало проникването. Ако е възможно, включете режим на поддръжка, за да не се заразяват посетителите.
Почистване стъпка по стъпка
- Сменете всички пароли: администраторите в WordPress, хостинг панела, базата данни, FTP/SFTP и пощата на администратора.
- Изтрийте непознатите потребители с роля „Администратор“.
- Проверете ядрото и плъгините с WP-CLI. Командите
wp core verify-checksumsиwp plugin verify-checksums --allпоказват файловете, които се различават от официалните. - Преинсталирайте WordPress, темата и плъгините от официални източници. Премахнете пиратските („nulled“) теми и плъгини, които са един от най-честите източници на зловреден код.
- Потърсете PHP файлове в
wp-content/uploads, където такива не трябва да има, и проверете.htaccessиwp-config.phpза добавен код. - Проверете базата данни: настройките
siteurlиhome, както и съдържанието на публикациите за вмъкнати скриптове. - Генерирайте нови ключове за сесиите с
wp config shuffle-salts, за да бъдат изведени всички влезли потребители. - Обновете всички компоненти и заявете повторна проверка в Google Search Console.
Защита след почистването
- многофакторна автентикация за всички администратори;
- ред
define('DISALLOW_FILE_EDIT', true);вwp-config.php, който спира редактирането на файлове от администрацията; - автоматични обновления и премахване на неизползваните плъгини и теми;
- ограничаване на опитите за вход и защитна стена за уеб приложения (WAF);
- ежедневни резервни копия, които се пазят извън хостинга.
Повторно заразяване
Ако сайтът се заразява отново след почистване, причината обикновено е пропусната задна врата (backdoor) или компрометиран акаунт в хостинга. В този случай е нужен преглед на целия сървър, а не само на сайта.