Модуль проверяет все GET и POST запросы и при нахождении плохих блокирует, не дав уйти запросам в базу или далее.
<?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");
}
}
}
?>