Какой в этом смысл?

garlian

Новичок
Какой в этом смысл?

Копался в чужом коде и нахожу такие выражения часто:
PHP:
$title = htmlspecialchars(strip_tags(trim($_POST['title'])))
Потом происходит запрос-insert в таблицу. Вопрос нужна ли тут функция htmlspecialchars() ?
 

Major

Новичок
Достаточно почитать ман на тему что и кто, зачем и как делает.
Оттримили, срезали теги, но... Теги срежутся если они будут правильными и закрытыми. Что будет если попадет битый тег?

Так вот htmlspecialchars тут для полной перестраховки, чтобы не париться. По идее фильтровать такое надо на выходе, но это ИМХО каждого... Все зависит от конкретного случая.
 

garlian

Новичок
Битый или нет всё-равно срежет, поэтому не вижу смысла в этой функции тут.
 

fixxxer

К.О.
Партнер клуба
>> var_dump( strip_tags('<test<>>>') );

тут надо определиться чего мы хотим.

а мы хотим либо запретить обработку html либо разрешить определенный набор тегов

в первом случае htmlspecialchars при выводе

во втором простого решения нет, надо смотреть в сторону jevix и подобных библиотек - и это опять же при выводе

а вот действительно нужный при формировании запроса mysql[_real]_escape_string автор забыл (хотя может там pdo какой дальше)
 

garlian

Новичок
Да PDO. Всё-таки в этой ситуаций в которой используется этот код, правильный подход будет убрать strip_tags и htmlspecialchars, а на выходе уже htmlspecialchars использовать.
 

Lightning

Трудоголик
Они составляются динамически, в зависимости от того, какие теги или атрибуты необходимо убрать/разрешить. Очевидно же.
 

Lightning

Трудоголик
nerezus
Хочешь сказать, что убрать определенные теги - очень сложно?
Тогда я готов продать тебе свой код, который убирает любые произвольные теги, за копейки (10K USD).
 

nerezus

Вселенский отказник
Спасибо, я как-нибудь нормальным кодом обойдусь.
Нельзя убрать неправильные значения аттрибутов и т.д. лишь одними регекспами.
И если бы так люди не думали, то не было бы у кучи XSS в самых популярных движках, сервисах.
Как понимаешь - сложности отладки и человеческий фактоор в данном случае запредельны, как причина предыдущего высказывания.

Так что свой регексп распечатай на глянцевой бумае и...
 
Сверху