фильтрация введённых пользователями данных XSS

                        
<?php
function inputclean($input, $sql=false) {
$input = htmlentities($input, ENT_QUOTES, 'UTF-8');
// мнемонизировали строку.

if(get_magic_quotes_gpc ())
{
$input = stripslashes ($input);
// убрали лишнее теперь экранирование.
}
if ($sql)
{
$input = mysql_real_escape_string ($input);
// если нужен MySQL-запрос, то делаем соответствующую очистку.
// Подключение к базе должно быть активным!
}
$input = strip_tags($input);
//режем теги.

$input=str_replace ("\n"," ", $input);
$input=str_replace ("\r","", $input);
//обрабатываем переводы строки.

return $input;
}

// ----------------------------------------------------
// Дальше - пример использования для фильтрации данных
// без MySQL и для фильтрации в качестве MySQL-запроса.
// ----------------------------------------------------

$test1 = "'><a href='#test'>&nbsp;_</a>Безумная тестовая запись
со всякими \n
¶";

$test2 = "'';!--\"<XSS>=&{()}";

echo inputclean($test1);


$link = mysql_connect("localhost", "root", "") or die("Could not connect");
echo inputclean($test2, true);
-1 10 0
0

Нет фото
Barek * 0.17
• 3 июл 2013, 02:42


Лучше поставить антихак

0

Нет фото
• 1 июл 2013, 12:53


[code]$input=str_replace (\"\\n\",\" \", $input);
$input=str_replace (\"\\r\",\"\", $input); [/code] можно смело заменить на $input = nl2br($input);