Класс заточен под юникод.
Зойчем нужен этот класс?
Класс фильтрует GET POST и COOKIE запросы от "вредных" вещей. В частности - поможет защитить сайт от XSS-атак (Вставки кода в страницу). Подробнее по XSS - здесь: http://ru[dot]wikipedia[dot]org/wiki/xss
Чтобы защититься, достаточно НЕ использовать входные GPC-запросы напрямую (никогда не доверяйте пользователям), а получать их через этот класс как описано в примере.
Обратите внимание, данный скрипт - НЕ защитит от атак типа SQL-injection, ибо там есть свои заморочки, и их я здесь не рассматриваю.
Для работы необходимо наличие расширения mbstring на сервере.
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- /****************KILLER**************\
- |* "'';!--\"<XSS>=&{()}" *|
- \************************************/
- class gpc
- {
- public $encoding = 'UTF-8';
- function __construct()
- {
- $this -> get_data = $this -> filter_vars($_GET, 'get');
- $this -> post_data = $this -> filter_vars($_POST, 'post');
- $this -> cook_data = $this -> filter_vars($_COOKIE, 'cookie');
- }
- public static function __data_clean($input)
- {
- }
- private function filter_vars($input)
- {
- foreach ($input as $k => &$v)
- {
- {
- $v = $this -> filter_vars($v);
- }
- else
- {
- $v = self::__data_clean($v);
- }
- }
- return $input;
- }
- }