2010-01-08 4 views
1

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

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

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

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

не понимаю почему нет .. – Earlz

ответ

5

Вы видели strip_tags?

+0

Вы все ответили в ту же минуту, но в соответствии с «самым старым» вы были первыми. Но спасибо всем за ваши ответы. – Mark

3

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

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

2

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

0

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

1

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

+0

@Ignas - Это неправильно, используя htmlspecialchars() без указания кодировки символов, возможны атаки XSS, которые используют UTF-7. –

+0

Значит, это также означает, что 'strip_tags' также уязвим для этого? Но в любом случае, спасибо. Я исправил свой ответ. –

+0

@Ignas - Я честно не знаю, уязвим ли strip_tags(), а также не принимает кодировку в качестве параметра. Мне придется поиграть с этим :) –

Смежные вопросы