Gaist-Endruy
( off
)
(
10:08 12-04-2009
)
static public post_decode(){
foreach($$_POST as $$key=>$$value){
$$key=htmlspecialchars($$key);
if(is_array($$value)){
$$value=$$value;
foreach($$value as $$sub_key=>$$sub_value){
$$sub_key=htmlspecialchars($$sub_key);
if(is_string($$sub_value)){
$$sub_value=htmlspecialchars($$sub_value);
}elseif(is_int($$sub_value)){
$$sub_value=(int)$$sub_value;
}
Gaist-Endruy
( off
)
(
10:08 12-04-2009
)
self::$$_post[$$key][$$sub_key]=$$sub_value;
}
}elseif(is_string($$value)){
$$value=htmlspecialchars($$value);
self::$$_post[$$key]=$$value;
}elseif(is_int($$value)){
$$value=(int)$$value;
self::$$_post[$$key]=$$value;
}
}
$$_POST=array();
}
Gaist-Endruy
( off
)
(
10:08 12-04-2009
)
Как видите технически функция ничем не отличается от предыдущей, кроме проверки на то является ли элемент массивом, и соответственно проверке этого массива в этом массиве. В конце функции мы точно так же уничтожаем суперглобальный массив.
Gaist-Endruy
( off
)
(
10:10 12-04-2009
)
Теперь я полностью приведу код класса:
Прикрепленный файл .zip:
скачать
(459b)
Gaist-Endruy
( off
)
(
10:11 12-04-2009
)
Это вполне рабочий код, для его использования необходимо подключить файл с классом в начале вашего приложения (например функцией include) и сразу за подключением произвести два вызова наших только что написанных методов:
Gaist-Endruy
( off
)
(
10:11 12-04-2009
)
protection::get_decode();
protection::post_decode();
Gaist-Endruy
( off
)
(
10:11 12-04-2009
)
К супер глобальным массивам мы теперь будем обращаться следующим образом:
Gaist-Endruy
( off
)
(
10:11 12-04-2009
)
protection::$$_get;
protection::$$_post;
Gaist-Endruy
( off
)
(
10:12 12-04-2009
)
Все! Теперь наше приложение не так легко взломать. Все данные, которые передаются в адресной строке браузера или через формы ввода надежно фильтруются. Как показывает практика, данная защита останавливает примерно 80% Хакеров.
Gaist-Endruy
( off
)
(
10:14 12-04-2009
)
А вот еще, что касается защиты:
Прикрепленный файл .txt:
скачать
(8.4Kb)