Подпишись к нам на новости

DalaLife Engine » Dle хаки → Как защитить свой сайт
Автор: admin | Добавлено: 6-10-2010, 09:50 | Просмотров (2254) | Комментариев (0) |
Как защитить свой сайт

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

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


Это сделает невозможным скачивание дампа базы. Как тогда копировать дамп? С помощь фтп-доступа. И не забываем удалять дамп с сервера, ибо он там ненужен.
2. Дальнейшим шагом будет защита доступа в админку. Заранее скажу что вам придётся отказаться от десятка журналистов, которых вы набрали в "команду сайта", давать административные права следует только проверенным людям, в которых вы на 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='<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL '.$_SERVER['REQUEST_URI'].' was not found on this server.</p>
<hr>
<address>'.$_SERVER['SERVER_SIGNATURE'].'</address>
</body></html>';
@header( "HTTP/1.0 404 Not Found" );
die( $die ); }


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


и после её пишем:
ErrorDocument 403 "<h1>Forbidden</h1>"

<Files "admin.php">
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. #Модератор
</files>


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


и после неё пишем:
<FilesMatch ".(php|h|c)$">
Order allow,deny
Deny from all
</FilesMatch>

<FilesMatch "(index.php|go.php|ajax.php|download.php)$|^$">
Order deny,allow
Allow from all
</FilesMatch>


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


File engine/modules/thanks.php not found.

alert Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
{link_on_forum}
 (голосов: 1)
Вход на сайт
Здравствуйте. Сейчас я Вас не знаю. Войдите или зарегистрируйтесь.
Навигация
Последние комментарии
А в это время на форуме...
Популярные новости
У нас нашли

Dle-Web.Ru 2009-2010 | DataLife Engine Nulled| uCoz | Ipb| Keygen Dle | Eleanor | Seo Dle
При копировании материала с сайта, ссылка на наш сайт обязательна.