2010-01-08 31 views
1

什么是阻止用户将html或javascript添加到字段的最安全的方法。我添加了一个youtube风格的'描述',用户可以在其中解释他们的工作,但除此之外我不想要其他任何内容,并且最好不要使用诸如'<'或'>'之类的垃圾邮件。php - 确保纯文本的最安全方法

我可以做这样的事情:

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

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

看不到为什么不.. – Earlz 2010-01-08 17:38:29

回答

5

你见过strip_tags

+0

你们都在同一分钟内回答,但根据'最古老'你是第一个。但是,谢谢大家的回答。 – Mark 2010-01-08 17:57:20

3

strip_tags()可能是最好的选择。

你不需要检查清洁后的代码与原始代码并抛出错误。只要它被清理干净,你应该能够显示它。只要扔掉原来的评论。你可以在文本框下面放一个注释,说如果你想让它更加用户友好,就不允许使用html。

2

使用strip_tags()而不是htmlentities()
而且方法没问题。

0

如果您要在MySQL中存储数据,请不要忘记mysql_real_escape_string()。

1

htmlspecialchars(),如果使用得当(请参阅注释),确保纯文本的最安全方法。当输出具有所有HTML特殊字符时,没有办法注入任何HTML或JavaScript。如果您使用strip_tags,则会阻止用户使用完全合法的字符。

+0

@Ignas - 这是错误的,使用htmlspecialchars()而不指定字符编码,使用UTF-7的XSS攻击是可能的。 – 2010-01-08 18:27:10

+0

那么,这是不是也意味着'strip_tags'也容易受到这个?但无论如何,谢谢。我纠正了我的答案。 – 2010-01-08 19:32:29

+0

@Ignas - 我真的不知道strip_tags()是否易受攻击,以及它不会将编码作为参数。我将不得不围绕这个:) – 2010-01-09 02:53:10