Последнее время редко, но бывают случаи, что в DLE, даже последних версий, появляется сторонний вредоносный код или брутят пароль админа. Данная инфа скорее для новичков DLE, т.к. способы в общем то очевидные, но многие просто забывают их выполнять, даже я иногда забываю включать плагины в режим "только для чтения".
В общем решил собрать некоторые моменты, которые помогут дополнительно защитить взлом ДЛЕ.
- Смена названия файла админки admin.php
- Создаем файл admin.php и копируем в него содержимое файла админки, и вставляем HTML код формы входа,тогда при попытке входа страница просто будет обновляться.
<!doctype html>
<html>
<head>
<meta name="robots" content="noindex,nofollow" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, maximum-scale=1, initial-scale=1, user-scalable=0">
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
<title>Панель управления</title>
<link href="engine/skins/stylesheets/application.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="engine/skins/javascripts/application.js"></script>
<style type="text/css">
div.selector {
width: 100%;
height: 38px;
margin-left: 2px;
}
div.selector:after {
top: 6px;
}
div.selector span {
padding: 0;
padding-left: 40px;
height: 36px;
line-height: 36px;
}
body {
background: url(/uploads/mini/noimage.jpg#34;engine/skins/images/bg.png/uploads/mini/noimage.jpg#34;);
}
.box {
margin-bottom: 5px;
}
label {
margin-bottom:0px;
}
</style>
</head>
<body>
<script language="javascript" type="text/javascript">
<!--
var dle_act_lang = [];
var cal_language = {en:{months:[],dayOfWeek:[]}};
//-->
</script>
<div class="container">
<div class="col-md-4 col-md-offset-4">
<div class="padded">
<!--MAIN area-->
<div class="login box" style="margin-top: 100px;">
<div class="box-header">
<span class="title">Панель управления</span>
</div>
<div class="box-content padded">
<form name="login" action="" method="post" class="separate-sections"><input type="hidden" name="subaction" value="dologin">
<div class="input-group addon-left">
<span class="input-group-addon">
<i class="icon-user"></i>
</span>
<input type="text" name="username" placeholder="Введите ваш логин">
</div>
<div class="input-group addon-left">
<span class="input-group-addon">
<i class="icon-key"></i>
</span>
<input type="password" name="password" placeholder="Введите ваш пароль">
</div>
<div class="input-group addon-left">
<span class="input-group-addon">
<i class="icon-flag"></i>
</span><select class="uniform" style="width:100%" name="selected_language">
<option value="Russian" selected >Russian</option>
</select>
</div>
<div class="input-group addon-left">
<input type="checkbox" class="icheck" name="login_not_save" id="login_not_save" value="1"/><label for="login_not_save"> Чужой компьютер</label>
<button type="submit" class="btn btn-blue btn-block">Войти <i class="icon-signin"></i></button>
</div>
</form>
<div>
</div>
</div>
</div>
<div class="text-center">Copyright © All rights reserved.</div>
<!--MAIN area-->
</div>
</div>
</div>
</body>
</html>
- Включить расширенную авторизацию в админпанели: настройка системы - безопасность - метод авторизации в админпанели.
- Выставить на все файлы сайта chmod 444. Создать в корне сайта PHP файл и запустить его.
<?php
function chmod_R($path, $perm) {
$handle = opendir($path);
while ( false !== ($file = readdir($handle)) ) {
if ( ($file !== ".") && ($file !== "..") ) {
if ( is_file($path."/".$file) ) { //если текущая позиция это файл то...
chmod($path . "/" . $file, $perm['f']);
}
else { //если текущая позиция это папка то...
chmod($path . "/" . $file, $perm['d']);
chmod_R($path . "/" . $file, $perm); // рекурсивно проверяем папочку
}
}
}
closedir($handle);
}
$path = $_SERVER["QUERY_STRING"];
if ( $path{0} != "/" ) {
$path = $_SERVER["DOCUMENT_ROOT"] . "/" . $path;
}
$perm=array();
$perm['f']=0444; // эти права будут установлены для файлов
$perm['d']=0755; // а эти для папок
chmod_R($path, $perm);
echo $path;
?>
- По возможности обновлять DLE до актуальной версии, если это невозможно, то ставить все багфиксы, которые появляются на офф сайте для вашей версии DLE.
- После настройки всех плагинов, необходимо выполнить рекомендацию, указанную внизу страницы системы плагинов: перевести систему плагинов только в режим чтения.
- Изменение расположения phpmyadmin.
- После полной настройки ДЛЕ перед открытием сайта желательно сделать слепок файлов в стандартном антивирусе ДЛЕ, и периодически проверять файлы этим антивирусом.
- ... возможно позже будет обновление инфы.
Так же не забываем про пароли: он должен быть из символов, букв разного регистра и цифр, и имел достаточную длину, чтобы брутить его пришлось несколько лет или десятилетий.
Ну и самое главное - качайте только с проверенных источников оригинальные дистрибутивы ДЛЕ, чтобы обезопасить себя от заведомо вшитого левого кода и левых внешних ссылок.
На многих сайтах есть инструкции защиты DLE старых версий (8.5-11) 7-9 летней давности, все старые дыры в ДЛЕ закрыты, и ставить их не обязательно, лучше всего всегда использовать актуальную версию скрипта.