заметки на полях

Блокнот разработчика

Currently browsing говнокод

Юмор: защита сайта от взлома

Встретилось в контексте защиты сайта. 2 предложенных варианта фильтрации входящих данных, один другого хлеще :)

1
2
3
4
5
6
7
8
9
10
11
12
13
foreach($_GET as $key => $val) {
$$key = stripslashes(strip_tags(htmlspecialchars($val, ENT_QUOTES)));
}
foreach($_POST as $key => $val) {
if (gettype ($val)!='array') {
$$key = stripslashes(strip_tags(htmlspecialchars($val, ENT_QUOTES)));
} else {
foreach($val as $k => $v) {
$$val[$k] = stripslashes(strip_tags(htmlspecialchars($v, ENT_QUOTES)));
}
$$key=$val;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
$post_arr=implode('.',$_POST);
$get_arr=implode('.',$_GET);
$cook_arr=implode('.',$_COOKIE);
$post_arr_key=implode('.',@array_flip($_POST));
$get_arr_key=implode('.',@array_flip($_GET));
$cook_arr_key=implode('.',@array_flip($_COOKIE));
$other_shtuki=@file_get_contents('php://input');
$cracktrack = strtolower($post_arr.$get_arr.$cook_arr.$post_arr_key.$get_arr_key.$cook_arr_key.$other_shtuki);
$wormprotector = array('union','select','substring','/**/'); //тут дополни по своему вкусу кейворды SQL- и PHP-инжекторов
$checkworm = str_replace($wormprotector, '*', $cracktrack);
if ($cracktrack != $checkworm)
die("");
?>

С бескрайних просторов searchengines