Xwab
Форумыnavigate_nextПрограммирование на PHP

Безопастность
Сообщения
Данир

Достаточна ли такая обработка переменной введенной пользователем?-

if($msg)
{
$msg = htmlspecialchars((stripslashes($msg)), ENT_QUOTES);
$msg=mysql_real_escape_string($msg);
$msg = str_replace("/","",$msg);
$msg = str_replace(".","",$msg);
$msg = str_replace("`","",$msg);
}
Или еще какие фильтрации можно добавить?


__________
посл.ред. 07 Ноя 2010, 20:30; всего 2 раз(а) 07 Ноя 2010, 20:23
EmptyZero

Перед записью в БД?

07 Ноя 2010, 20:25
Fernus

Шлак...

Нужно обрабатывать переменные в зависимости от того, где они будут использоваться...

07 Ноя 2010, 20:27
Данир

Да в бд

07 Ноя 2010, 20:27
manyrus

для бд достаточно
if($msg)
{

$msg=mysql_real_escape_string($msg);

}

при выводе
$msg = htmlspecialchars($msg, ENT_QUOTES);

07 Ноя 2010, 20:33
Данир

manyrus, получается мне можно написать просто?:

$msg=mysql_real_escape_string($msg);
$msg = htmlspecialchars($msg, ENT_QUOTES);

07 Ноя 2010, 20:46
Okula

Я в базу данных пишу в такой обработке:
$text = mysql_escape_string(trim($text));
//это если не нужно обрезать пробелы и перевод строки
Ну а на выводе уже делаю всё что хочу с данными

07 Ноя 2010, 20:55
Fashion

manyrus, не всегда этого достаточно.
есть минимум 3 случая, когда mysql_real_escape_string будет бесполезен


__________
посл.ред. 07 Ноя 2010, 21:09; всего 1 раз 07 Ноя 2010, 20:55
iceman12

manyrus, ага, а не думал про % (при поиске)

07 Ноя 2010, 21:07
wapmorgan

9, ну и про '_'

07 Ноя 2010, 21:09
Ответить на тему