php - самый безопасный способ обеспечить простой текст - PullRequest
1 голос
/ 08 января 2010

Какой самый безопасный способ запретить пользователям добавлять html или javascript в поле. Я добавляю «описание» в стиле youtube, где пользователи могут объяснять свою работу, но я не хочу, чтобы там было ничего, кроме обычного текста, и желательно, чтобы ни один из мусора htmlentities вроде «<» или «>».

Могу ли я сделать что-то вроде этого:

$clean = htmlentities($_POST['description']);

if ($clean != $_POST['description']) ... then return the form with an error?

Ответы [ 5 ]

5 голосов
/ 08 января 2010

Вы видели strip_tags?

3 голосов
/ 08 января 2010

strip_tags (), вероятно, будет лучшим выбором.

Вам не нужно проверять очищенный код по сравнению с оригиналом и выдавать ошибку. Пока он очищен, вы сможете отображать его. Просто выбросьте оригинальный комментарий. Вы можете поместить примечание под текстовым полем, говоря, что html не разрешен, если вы хотите сделать его более удобным для пользователя.

2 голосов
/ 08 января 2010

Используйте strip_tags() вместо htmlentities().
И метод в порядке.

1 голос
/ 08 января 2010

htmlspecialchars(), при правильном использовании (см. Комментарии), - это самый безопасный способ обеспечить простой текст. Невозможно внедрить какой-либо HTML или JavaScript, если на выходе все экранированные символы HTML экранированы. Если вы используете strip_tags, вы запретите своим пользователям использовать абсолютно законные символы.

0 голосов
/ 08 января 2010

Также не забудьте mysql_real_escape_string (), если вы храните данные в MySQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...