4week.ru » Полезное » Защита своего сайта на DLE

Обновление портала до версии 2.0

Защита своего сайта на DLE


Изначально выясним что мы понимаем под понятием уязвимости, чтобы знать в дальнейшем какие задачи пред нами стоят. Для нас уязвимость это какой-либо недостаток в защите сайта, при котором иной пользователь (ака злоумышленник) может получить достук к админке и/или FTP доступ, или же путём создания собственного файла на сервере (шелл, эксплоит... все называют по разному) манипулировать сайтом. В любом из вышеуказанных случаев злоумышленник имеет возможность слить вашу БД или внести в неё изменения, изменить шаблон сайта, если количество мозгов в черепе побольше, то также можно организовать удалённый доступ и удалённую манипуляцию сайтом, проделывая те или иные действия уже в автоматическом режиме. Иногда "ломанные" сайты соединяют в сети для более удобного управления ими.

Примером удалённой манипуляции сайтом может послужить создаваемая мной сеть сателлитов на ДЛЕ, которая благодаря особому построению управляется с единой админки, где можно изменять настройки и управлять базой как одного сайта из сетки, так всей сети или её части. Причём потеря N-го количества сайтов из сети не несёт вреда сети в общем.

Теперь зная от чего нужно защититься перейдём непосредственно к методам защиты.

Изначально нужно защитить "хранилище" сайта, тоесть базу данных, для этого нужно как минимум делать бэкап каждые 2-3 дня. Также не забываем в папке /backup создать файл .htaccess со следующим содержимым:
Order Deny,Allow
Deny from all

Это сделает невозможным скачивание дампа базы. Как тогда копировать дамп? С помощь фтп-доступа. И не забываем удалять дамп с сервера, ибо он там ненужен.

Дальнейшим шагом будет защита доступа в админку. Заранее скажу что вам придётся отказаться от десятка журналистов, которых вы набрали в "команду сайта", давать административные права следует только проверенным людям, в которых вы на 99,9% уверены. Далее в файле admin.php (кстати файл советовалось бы переименовать) после строки:
define ( 'ENGINE_DIR', ROOT_DIR . '/engine' );

пишем:
$ip_diapazones=array(
'99.99', // Администратор
'99.999', // Журналист 1
'92.123', // Журналист 2
'23.321', // Журналист 3
'123.999', // Модератор
);

$user_ip_net=explode(".",$_SERVER['REMOTE_ADDR']);
$user_diap=$user_ip[0].'.'.$user_ip[1];

if(!in_array($user_diap,$ip_diapazones)){
$die='

404 Not Found

Not Found


The requested URL '.$_SERVER['REQUEST_URI'].' was not found on this server.




'.$_SERVER['SERVER_SIGNATURE'].'

';
@header( "HTTP/1.0 404 Not Found" );
die( $die ); }


Потом вместо вымышленных диапазонов ip пишем нужные вам. Данный подход позволяет ограничить доступ к админке даже если злоумышленник использует вашу учётную запись администратора. В некоторых случаях подобной защиты админки оказывается недостаточно, поэтому советовал бы сделать ещё и следующее:
В файле .htaccess, который находится в корне вашего сайта, находим строку:
RewriteEngine On

и после её пишем вот эти данные:
ErrorDocument 403 "

Forbidden

"


Deny from all
Allow From 99.99. #Администратор
Allow From 99.999. #Журналист 1
Allow From 92.123. #Журналист 2
Allow From 23.321. #Журналист 3
Allow From 123.999. #Модератор

Диапазон нужных вам IP адресов придётся продублировать.

Дальнейшим шагом будет установка запрета на выполнение каких-либо скриптов не относящихся к нормальной работе сайта. Опять же в файле .htaccess находим строку:
RewriteEngine On
ErrorDocument 403 "

Forbidden

"

и после неё пишем:

Order allow,deny
Deny from all



Order deny,allow
Allow from all


Это запретит вызов каких-либо php-файлов кроме как index.php, go.php, ajax.php и download.php, всеобщего доступа к этим файлам вполне достаточно для нормальной работы сайта.
Ну и для организации защиты собственно файлов - установите на все папки (кроме uploads) права CHMOD 0555, на файлы CHMOD 0444. Папкам /engine/data и /engine/cache и их подпапкам даём права 0777 а внутри лежащим файлам - 0666.
Печать
 
юзерпик
23 июня 2010 06:08
Комментарий #1

SulaClalary
Группа: Гости
Регистрация: --
Коментов: 0
Новостей: 0


Инфиум поставлю ввойду)
   
 

Опрос на сайте


    Да winked
    Нет sad
    Может быть
    Незнаю что это?


Календарь

    «    Май 2012    »
    ПнВтСрЧтПтСбВс
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31