Блог Евгения Попова :: Программы :: DataLife Engine

Некоторые способы защиты DLE


Последнее время редко, но бывают случаи, что в DLE, даже последних версий, появляется сторонний вредоносный код или брутят пароль админа. Данная инфа скорее для новичков DLE, т.к. способы в общем то очевидные, но многие просто забывают их выполнять, даже я иногда забываю включать плагины в режим "только для чтения".

В общем решил собрать некоторые моменты, которые помогут дополнительно защитить взлом ДЛЕ.

  1. Смена названия файла админки admin.php
  2. Создаем файл 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("engine/skins/images/bg.png");
    
    }
    .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">&nbsp;Чужой компьютер</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 &copy; All rights reserved.</div>
    
    
    
    	 <!--MAIN area-->
      </div>
    </div>
    </div>
    
    </body>
    </html>

  3. Включить расширенную авторизацию в админпанели: настройка системы - безопасность - метод авторизации в админпанели.
  4. Выставить на все файлы сайта 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;
    ?>


  5. По возможности обновлять DLE до актуальной версии, если это невозможно, то ставить все багфиксы, которые появляются на офф сайте для вашей версии DLE.
  6. После настройки всех плагинов, необходимо выполнить рекомендацию, указанную внизу страницы системы плагинов: перевести систему плагинов только в режим чтения.
  7. Изменение расположения phpmyadmin.
  8. После полной настройки ДЛЕ перед открытием сайта желательно сделать слепок файлов в стандартном антивирусе ДЛЕ, и периодически проверять файлы этим антивирусом.
  9. ... возможно позже будет обновление инфы.


Так же не забываем про пароли: он должен быть из символов, букв разного регистра и цифр, и имел достаточную длину, чтобы брутить его пришлось несколько лет или десятилетий.

Ну и самое главное - качайте только с проверенных источников оригинальные дистрибутивы ДЛЕ, чтобы обезопасить себя от заведомо вшитого левого кода и левых внешних ссылок.

На многих сайтах есть инструкции защиты DLE старых версий (8.5-11) 7-9 летней давности, все старые дыры в ДЛЕ закрыты, и ставить их не обязательно, лучше всего всегда использовать актуальную версию скрипта.
Перейти на сайт (скачивать файлы можно только на сайте)