22 ноя 2011
Защита сайтов by kzpromo (GET и POST запросы)
У нас вы можете скачать бесплатно Защита сайтов by kzpromo (GET и POST запросы)

Данный материал предоставлен сайтом Skripter.info исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Защита сайтов by kzpromo (GET и POST запросы)

Модуль проверяет все GET и POST запросы и при нахождении плохих блокирует, не дав уйти запросам в базу или далее.
Уже несколько лет наблюдаю как растет тенденция взломов дле сайтов. Сотни тысяч сайтов страдали от взломов, миллионы сайтов подвержены атакам.
Решил поделиться с наработками которые уже год внедрены в релиз SECURED DLE и обеспечивают нормальную работу сайта без потери информации. Многие будут осуждать меня за данную заплатку, так как кому-то я испорчу бизнес, сильно усложнив взлом. Данная наработка подходит практически к любому сайту где есть php. Я не держу обиду на тех кто не верит в защищенность релиза.
И так я расскажу как обезопасить себя от: шеллов, sql inj, php inj, xss

Установка:
1) Создаём файлик, Назовем его security.class.php
Вписываем в него:

$value) {
if(preg_match("/$value/i", $request) || preg_match("/$value/i", $urequest) || preg_match("/$value/i", $brequest))
{
if($debug == "1") $do_debug = "
В массиве найден запрос $value , который блокирует правильную работу
$request";
die("BAD REQUEST $do_debug");
}
}
}
if($_POST)
{
$request = str_replace("selected_language", "sl", serialize($_POST));
$urequest = urldecode($request);
$brequest = base64_decode($request);
foreach ($bag_req as $key => $value) {
if(preg_match("/$value/i", $request) || preg_match("/$value/i", $urequest) || preg_match("/$value/i", $brequest))
{
if($debug == "1") $do_debug = "
В массиве найден запрос $value , который блокирует правильную работу
$request";
die("BAD REQUEST $do_debug");
}
}
}
?>


2) Кидаем наш файл в engine/classes

3) Что бы подключить модуль защиты: Открываем engine/classes/mysql.php

и Вписываем Перед:
if ( extension_loaded('mysqli') AND version_compare("5.0.5", phpversion(), "!=") )
{
include_once( ENGINE_DIR."/classes/mysqli.class.php" );
}
else
{
include_once( ENGINE_DIR."/classes/mysql.class.php" );
}



Строку:
include_once( ENGINE_DIR."/classes/security.class.php" );


Коротко о Модуле:
Модуль проверяет все GET и POST запросы и при нахождении плохих блокирует, не дав уйти запросам в базу или далее.


Дальше нам необходимо защитить себя от шеллов на сайте
Нужно отредактировать php.ini и отключить следующие функции:

disable_functions = eval, exec, system, passthru, scandir, popen, shell_exec, proc_open, proc_close, proc_nice, get_current_user, getmyuid, posix_getpwuid, apache_get_modules, virtual, posix_getgrgid, getmyinode, fileowner, filegroup, getmypid, apache_get_version, apache_getenv, apache_note, apache_setenv, disk_free_space, diskfreespace, dl, ini_restore, openlog, syslog, highlight_file, show_source, symlink, disk_total_space, ini_get_all, get_current_user, posix_uname


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


FIX для GooGlemap:
Открыть /engine/inc/googlemap.php
найти:

$map->limit = intval($_POST['limit']);

Заменить:
$map->limit = intval($_POST['numbers']);

Найти:

заменить:









Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
LingAlin | 23 февраля 2012 17:03

Findnig this post solves a problem for me. Thanks!

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.