strip_tags достаточно, чтобы удалить HTML из строки? - PullRequest
1 голос
/ 21 февраля 2012

Пользователь сайта может зарегистрироваться на сайте, и во время регистрации он может указать имя.

Я хочу, чтобы это имя было допустимым и не содержало HTML и других прикольных символов. Для этого достаточно strip_tags?

Ответы [ 2 ]

4 голосов
/ 21 февраля 2012

Я считаю, что нет единой функции для защиты от несанкционированного доступа. Лучше всего смешать несколько вместе:

$val = trim($val);
$val = strip_tags($val);
$val = htmlentities($val, ENT_QUOTES, 'UTF-8'); // convert funky chars to html entities
$pat = array("\r\n", "\n\r", "\n", "\r"); // remove returns
$val = str_replace($pat, '', $val);
$pat = array('/^\s+/', '/\s{2,}/', '/\s+\$/'); // remove multiple whitespaces
$rep = array('', ' ', '');
$val = preg_replace($pat, $rep, $val);
$val = trim($val);
$val = mysql_real_escape_string($val); // excellent final step for MySQL entry
1 голос
/ 21 февраля 2012

Regex может уместиться с меньшим количеством кода:

^[A-Z]'?[- a-zA-Z]( [a-zA-Z])*$

Вот хорошие примеры:

Regex для имен

...