Не знаю зачем написал сей велосипед, но думаю, что кому-нибудь будет полезен при анализе логов.
При очистке более 30 сайтов от вирусов/шеллов и прочей грязи, нашел закономерности, cпецифичные для OpenCart. Например, если сайт заражен ботом, то большая часть зараженных файлов вызываются напрямую, а не через точку входа, что логично. Эти файлы чаще всего находятся в директориях catalog и system. Например, http://адрес-сайта/system/helpers/sh.php.'>http://адрес-сайта/system/helpers/sh.php.
Скрипт подсвечивает:
Разрешенные типы файлов
POST/HEAD запросы
Запросы к точке входа витрины (index.php*)
Запросы в админку (admin/*)
Запросы с ответом 404
Прямые вызовы PHP файлов (например, http://адрес-сайта/system/helpers/sh.php)
Плюсы:
Есть визуальная навигация по всем обработанным строкам (с подсветкой)
Можно поставить ограничение на показываемых строк (по умолчания 10000)
Наличие пагинации
Настраиваемый формат логов (благодаря использованию PHP Web Server Log Parser Library)
Минусы:
Медленный
Используется функция file, так что если файл большой, то можно уткнуться в memory_limit
Описание настроек:
//Разрешенные типы файлов
$ALLOWED_EXTENSIONS = array('css','js','png','jpg','gif','svg','jpeg','pdf','htm','html','woff','eot','ico','txt');
//Путь к админке
define('ADMIN_DIR', 'admin');
//Название файла лога
define('LOG_FILE', 'podarishka.danzil.ru-Feb-2015.log');
//Формат лога. Сейчас стоит дефолтный, про формат можно узнать https://github.com/kassner/log-parser#supported-format-strings
define('LOG_FORMAT', '%h %l %u %t "%r" %>s %O "%{Referer}i" \"%{User-Agent}i"');
//Кол-во строк на страницу
define('LINES_PER_PAGE', 10000);
Ссылки:
PHP Web Server Log Parser Library (GIT)
Скриншот
Если это велосипед, то прошу ткнуть носом в готовые решения.
1.php