Php скрипт отслеживания файлов сайта
Владельцев сайтов справедливо волнует вопрос, что делать, если сайт взломают. Конечно, нужно латать дыры, особенно в стандартных CMS, где каждый недочет в безопасности давно известен хакерскому сообществу. Но можно, как минимум, облегчить себе жизнь в том случае, когда взлом уже состоялся.
В этом случае перед нами стоит две задачи:
1. Своевременно узнать о взломе.
2. Быстро найти, что враг изменил на сайте, и исправить это, пока не пострадали пользователи, а поисковые системы не блокировали выдачу сайта за вредоносный код.
Для реализации этого сделан небольшой php скрипт, который постоянно контролирует все файлы, находящиеся в директории вашего сайта.
Скрипт целесообразно запускать по расписанию (через cron). Он будет просматривать все файлы на вашем хостинге, начиная с заданной директории, кроме специально прописанных в настройках исключений (конкретных файлов или директорий, либо определенных расширений файлов). При этом отслеживаются все изменения:
Новые файлы, которые появились после последнего запуска скрипта.
Файлы, которые исчезли.
Файлы, у которых изменилось время последней модификации.
Файлы, у которых изменился размер.
Файлы, у которых изменилось содержимое (контрольная сумма).
Результаты своей работы скрипт пишет в файл лога, и, кроме того, если были изменения в каких-либо файлах, то они выдаются на стандартный вывод (при запуске из браузера эти результаты будут на экране, а при запуске из крона обычно настроена автоматическая отправка выдачи скрипта на емейл). Таким образом, если изменений в файлах не было, то вы ничего не будете получать. А если какие-то файлы изменились, то получите на емейл сообщение, какие именно файлы и как изменились (и дубль этого сообщения будет в лог-файле). Соответственно, найти все результаты деятельности хакеров будет очень просто.
Скрипт отслеживания файлов вы можете скачать прямо здесь. Все его настройки описаны в тексте скрипта. Информация обо всех файлах хранится в папке скрипта в файле chfiles.tmk, а лог его работы пишется там же в chfiles.log. В первый раз лучше запустить скрипт контроля файлов из браузера, чтобы он прошел по всем файлам (не обращайте внимания на предупреждения об отсутствии файла данных - он его сделает). И после этого - ставить на крон.
В случае изменения данных о любом файле скрипт сохраняет старые данные (там интересны в основном размер и дата) - до четырех старых наборов сведений о файле. А новые данные считаются дальше актуальными, и больше сообщений о них не будет, пока не изменятся снова. Посмотреть все сведения о файлах можно, например, распечатав весь файл данных такой строчкой:
<? print_r(unserialize(file_get_contents('chfiles.tmk'))); ?>
(эту строчку положить в отдельный файл, например, show.php в той же директории, где и основной скрипт отслеживания файлов, и запустить его в браузере).
ссылка на сайт автора
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 21 сообщение(ий)): У вас нет прав чтобы видеть скрытый текст, содержащийся здесь. |