xenforo Отслежка и логирование взлома сайта

admin

Administrator
Команда форума
Сообщения
5,935
Симпатии
877
#1
Каждый сайт с каждым днем становиться взрослее, и при хорошей работе часто посещаемым.
Но можно забыть, что сайт посещают не только обычные пользователи, но и "темные конкуренты".
И защита и поиск уязвимостей становиться не обходимым важным.
Так как форум относиться у нас к движку xenforo.
Покажу вам на примере как отслеживать попытки взлома сайта.
это может помочь вам закрыть дыру в безопасности.
создаем файл в около конфига в папке libarary:
anti_bad.php
вставляем внутрь
PHP:
<?php
/**
by_xaker01
*/
$badcount = 0;
$badops = array("UNION",
                "OUTFILE",
                "FROM",
                "CREATE",
                "SELECT",
                "WHERE",
                "SHUTDOWN",
                "UPDATE",
                "DELETE",
                "CHANGE",
                "MODIFY",
                "RENAME",
                "RELOAD",
                "ALTER",
                "GRANT",
                "DROP",
                "INSERT",
                "CONCAT",
                "cmd",
                "exec",
                "\([^>]*\"?[^)]*\)",
                "<[^>]*body*\"?[^>]*>",
                "<[^>]*script*\"?[^>]*>",
                "<[^>]*object*\"?[^>]*>",
                "<[^>]*iframe*\"?[^>]*>",
                "<[^>]*frame*\"?[^>]*>",
                "<[^>]*applet*\"?[^>]*>",
                "<[^>]*meta*\"?[^>]*>"
                );

if ($_GET["css"] == "bb_code,message_simple,moderator_bar,notices,panel_scroller,rating,resource_update,resource_view,resource_view_header,resource_view_tabs") {
    
}else{
foreach ($_REQUEST as $params => $inputdata) {
    for ($i = 0; $i < sizeof($badops); $i++) {
            if (is_string($inputdata) && preg_match('/'.$badops[$i].'/i',$inputdata)) {
                 $badcount = 1;
            }
    }
}
if( $badcount  ){

$f = 'log.txt';
$h = fopen($f,'a+');
fwrite($h, var_export($_REQUEST, true));
fclose($h);
}
}
?>
Далее в файле config.php дописываем строку
PHP:
include "anti_bad.php";
и теперь в корне файла при попытках взлома сайта, будет создаваться лог файл с запросом к серверу.
Конечно же будет очень часто срабатывать ложная тревога, и записываться туда другие параметры которые не имеют отношение к взлому.
Но это лучше чем изучать apache или nginx логи весом 10-50мб

Данный скрипт не является идеалом, и его можно улучшать.
И в конце концов превратить в идеальный плагин.
Свои доработки и идеи можете писать ниже, улучшим код вместе!
 
Похожие темы
Ответы
6
Просмотры
54
Ответы
0
Просмотры
76