Раньше помнится был код, который ловил массивы $_GET/$_POST и проверял на прочую гадость)) И если находил, то банил пользователя. Модуль был под DCMS. Но найти его не могу.
Помогите найти, пожалуйста)
.htaccess
RewriteCond %{THE_REQUEST} ^POST
RewriteCond %{REQUEST_URI} !/post.php$
RewriteRule .*? /post.php [L]
RewriteCond %{THE_REQUEST} ^GET
RewriteCond %{REQUEST_URI} !/index.php$
RewriteRule .*? /index.php [L]
Ну это понятно. Но сейчас не он мне нужен
Он?
[code]<?php
//отражение хакерских запросов
//autor: kzpromo
//поставить еденицу если хотите включить отладку запросов
$debug = 0;
$bag_req = array(\"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\"
}
}
}
?>[/code]
Миледи, ну тогда фильтруй переменные средствами php
Вот еще из кх.
[code]class InitVars {
# Недопустимые слова в запросахINSERT
var $deny_words = array(\'UNION\',\'CHAR\',\'INSERT\',\'DELETE\',\'SELECT\',\'UPDATE\',\'GROUP\',\'ORDER\',\'BENCHMARK\',\'union\',\'char\',\'insert\',\'delete\',\'select\',\'update\',\'group\',\'order\',\'benchmark\');
function InitVars() {
}
# Метод конвентирует суперглобальные массивы $_POST, $_GET в перемнные
# Например : $_GET[\'psw\'] будет переобразовано в $psw с тем же значением
function convertArray2Vars () {
foreach($_GET as $_ind => $_val) {
global $$_ind;
if(is_array($$_ind)) $$_ind = htmlspecialchars(stripslashes($_val));
}
foreach($_POST as $_ind => $_val) {
global $$_ind;
if(is_array($$_ind)) $$_ind = htmlspecialchars(stripslashes($_val));
}
}
# Метод проверяет $_GET и $_POST переменные на наличие опасных данных и SQL инъекций
function checkVars() {
//Проверка опасных данных.
foreach($_GET as $_ind => $_val) {
$_GET[$_ind] = htmlspecialchars(stripslashes($_val));
$exp = explode(\" \",$_GET[$_ind]);
foreach($exp as $ind => $val) {
if(in_array($val,$this->deny_words)) $this->antihack(\"Произошла ошибка системы!\"
}
}
foreach($_POST as $_ind => $_val) {
$_POST[$_ind] = htmlspecialchars(stripslashes($_val));
$exp = explode(\" \",$_POST[$_ind]);
foreach($exp as $ind => $val) {
if(in_array($val,$this->deny_words)) $this->antihack(\"Произошла ошибка системы!\"
}
}
}
function antihack($msg) {
echo \"Произошла ошибка системы!\";
die;
}
}
foreach ($_GET as $check_url) {
if (!is_string($check_url) || !preg_match(\'#^(?:[a-z0-9_\\-/]+|\\.+(\"?!/))*$#i\', $check_url)) {
include_once \'inc/head.php\';
echo \"<div class=\'block\'>Замечена попытка SQL инъекции! Ваши данные отправлены администратору.</div>\";
$msgsql=\'Замечена попытка SQL инъекции пользователем: \'.$ku[\'nick\'].\' (ID-\'.$ku[\'id\'].\').\';
$timeban = time()+3600;
mysql_query(\"INSERT INTO `kolhoz_ban` SET `id_user` = \'$ku[id]\', `id_who` = \'2\', `msg` = \'Попытка SQL инъекции.\', `izg` = \'0\', `time` = \'$timeban\'\"
exit;
}
}
if($ku[\'hydropinics_type\'] > \'400\'){
mysql_query(\"UPDATE `kolhoz_user` SET `hydropinics_type` = \'400\' WHERE `id` = \'$ku[id]\'\"
}
if($ku[\'hydropinics_time\']<$time){
mysql_query(\"UPDATE `kolhoz_user` SET `hydropinics_type` = \'0\' WHERE `id` = \'$ku[id]\'\"
}
unset($check_url);[/code]
этот нет?
[code]
foreach($_GET as $check_url){
if(!is_string($check_url) or !preg_match(\'#^(?:[a-z0-9_\\-/]+|\\.+(?!/))*$#i\', $check_url)){
header (\'Location: \'.home.\'/index.php\'); exit;
}} unset($check_url);
[/code]
Кевин, сорри что не потему убери с игнора хочю спроситьпо коду
Та просто елимуса перед входом поставьте вот и вся защита смысл таков пока на него фапать будут пипишники в блок идать