Скачать Статья Защищаем свой сайт от взлома
Данная стать поможет вам организовать некую защиту вашего dle сайта. Самые нежелательные недостатоки в защите сайта это когда злоумышленник может взять достук к админке или ftp доступ, или же методом создания персонального файла на вашем компьютере и манипулировать сайтом.
И так если враг пробил вашу админку и пытается слить вашу базу то при скачки он получит болт.
Делаем следующее в папке /backup создаем файл .htaccess с содержимым:
Order Deny,Allow
Deny from all
Теоретически слить базу можно теперь только с ftp доступа.И по этому не забывает делать дамп базы несколько раз в неделю и переносим дамп базы с сервера к себе на комп.
Далее защищаем саму админку тобиш даем дминистративные права тем диапазонам которым вы дали права (журналисты,модераторы).
В файле 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 адресов придётся продублировать.
Далее делаем запрет на на выполнение скриптов не относящихся к нормальной работе сайта.
Опять открываем файл .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 которых достаточно для работы вашего сайта.
автор:Gauss
P.S. Если у вас есть еще идеи по поводу защиты то отписываемся ниже.
№2 продолжаю:D
1. открываем файл admin.php и после строк
================================================== ===
Файл: admin.php
-----------------------------------------------------
Назначение: админпанель
================================================== ===
*/
Сразу вставляем
$login="KinD";
$password="698d51a19d8a121ce581499d7b701668";
if (!isset($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_USER']!==$login || md5($_SERVER['PHP_AUTH_PW'])!==$password) {'
header('WWW-Authenticate: Basic realm="Admin Panel by KinD"');
header('HTTP/1.0 401 Unauthorized');
exit("Хрен тебе");'}
Вместо KinD пишем логин для авторизации. Вместо 698d51a19d8a121ce581499d7b701668
пароль в md5 используйте _http://www.adamek.biz/md5-generator.php
2. Сохраняем результат на сервере и идём в админку. Теперь для входа в админку нужно будет пройти двойную авторизацию и даже имея ваш сброшенный пароль БД слить не выйдет.