модуль, его надобно подключить перед подключением в базу
<?php
//отражение хакерских запросов
//autor: kzpromo
//поставить еденицу если хотите включить отладку запросов
$debug = 0;
$bag_req = array(«select», «eval», «echo», «UPDATE», «LIMIT», «INSERT», «INTO», «union», «CONCAT», «INFORMATION_SCHEMA», «OUTFILE», «DUMPFILE», «LOAD_FILE», «BENCHMARK», «SUBSTRING», «ASCII», «CHAR», «database», «HEX», «\.\/», «%00», «\.htaccess», «config\.php», «document\.cookie»);
$request = serialize($_GET);
$urequest = urldecode($request);
$brequest = base64_decode($request);
if($_GET)
{
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 = «<br>В массиве найден запрос <b>$value</b> , который блокирует правильную работу<br>$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 = «<br>В массиве найден запрос <b>$value</b> , который блокирует правильную работу<br>$request»;
die(«BAD REQUEST $do_debug»);
}
}
}
?>
full code
Модуль проверяет все 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
Данными функциями успешно пользуются шеллы, необходимо отключить функции на уровне сервера, так как если у вас хостинг, то на соседнем аккаунте шеллы могут работать, что может привести ко взлому