Учитывая популярность WordPress, он регулярно становится мишенью хакеров. Даже если вы обновляете свой блог сразу, когда новая версия выпущена, ваш сайт, возможно, уже был взломан. Поэтому, если есть известные уязвимости WordPress, старые или новые, ваш блог подвержен взлому.
Есть два основных места для хакеров на Вашем блоге: файлы и база данных. Для них, чтобы выполнить произвольный код на вашем сайте (вместо того, чтобы просто отредактировать контент, который в основном в базе данных), как правило, они должны взломать файлы.
(Кстати, для изменения базы данных, вы можете посмотреть в MySQL бинарных или мастер – журналы, хотя обычно требуется полный доступ к серверу, чтобы заглянуть в них.
Легкий способ быть на чеку потенциальных взломов это получать уведомление, когда файл на вашем сайте изменяется. Каждый час, или более или менее часто в зависимости от ваших потребностей, вы можете запустить скрипт (через хрон или WP-Crontrol) который будет по электронной почте высылать список всех файлов, которые были изменены с момента последней проверки. (Если никакие файлы не были изменены, письмо не отправляется.) Если вы или кто – то еще, знаете, что делали изменения в файлы, то вы можете просто продолжить работать дальше. Однако, если неожиданные файлы были изменены, вы можете исследовать дальше.
Письма будут присылаться с содержанием, что-то вроде этого:
Файлы измененные в последний час: /path/to/my/folders/my_config.php /path/to/my/folders/plugins/anti_spam.php /path/to/my/folders/plugins/countsdown.php
Вот примерный быстрый код, который проверяет, является ли какие – либо файлы (включая все подкаталоги) измененными в определенной папке в течение последнего часа, и если да, то по электронной почте результаты будут высланы по адресу. Расположение самого скрипта на сервере не важно – его просто необходимо периодически запускать. Кроме того , предполагается , что вы работаете в Linux и можете запустить EXEC функцию в PHP :
<? php /* Этот файл по электронной почте отправит вам список всех измененных файлов в определенной директории Запустите этот файл через хрон каждый час или больше/меньше. "find" синтаксис командной оболочки из кода: */ // Команда Shell, которая находит все файлы ниже определенного каталога, которые изменены в течение последних 62 минут // Заменить путь к файлу (абсолютный или относительно местоположения этого сценария) по мере необходимости exec('find /path/to/your/folder -cmin -62 -print', $last_changed); // Только результаты по электронной почте, если ничего не изменилось if ( count ( $last_changed ) > 0 ) { // Настройки электронной почты $sendto = "E-mail receiver <receiver@yoursite.ru>"; $sendfrom = "File change script <dummyaddress@yoursite.ru>"; $sendsubject = "yoursite.com file change notice"; // Результаты последнего изменения файлов $email_output = 'Files modified in the last hour:'; $email_output .= "\n"; $email_output .= "\n"; $last_changed_files = implode ( "\n", $last_changed); $email_output .= $last_changed_files; // Файл Почты // Вы также можете использовать пакет PEAR Mail (http://pear.php.net/package/Mail~~HEAD=dobj) или аналогичный сценарий для более надежной рассылки // разрыв строки, который мы будем использоваться для заголовков $send_eol = "\r\n"; $send_headers = 'From: ' . $sendfrom . $send_eol; $send_headers .= 'Reply-To: ' . $sendfrom . $send_eol; $send_headers .= 'Return-Path: ' . $sendfrom . $send_eol; // Отослать! mail($sendto, $sendsubject, $email_output, $send_headers); } ?>
Если вы хотите включить или исключить определенные папки и/или файлы из результатов (например, исключить папку кэша, так как изменения в этой папке будет происходить часто и, как правило, не является целью хакеров), вы можете использовать параметры “prune”, “name”, “regex”, “iregex”, or “path” в команде Linux “find”.
Этот код также может быть применен к любой папке, так что это не только для установки CMS WordPress!