防止将HTML数据发布到表单文本框中

时间:2011-02-11 15:42:40

标签: php mysql html validation xss

我正在使用PHP创建一个Web应用程序,其中我有一个表单,该表单将条目输入MySQL数据库,然后将其显示在另一个网页上。但问题是表单中的文本框倾向于接受HTML内容,使应用程序容易受到XSS攻击。在将其显示在网页中之前,如何将HTML转换为纯文本。

如果我没有提供任何信息,请随时提问 ---------------------------------------(UPDATE)-------- --------------------------------
很多同伴建议使用htmlspecialchars,但在这种情况下,如果我允许用​​户使用超链接引用其他页面,我该怎么做?

3 个答案:

答案 0 :(得分:2)

htmlspecialchars是您的朋友之一,您可能还想要替换utf8,hexencoded或授权版本的<避免混淆的脚本通过。

答案 1 :(得分:1)

答案 2 :(得分:1)

htmlspecialchars是一个阻止xss

的人

strip_tags也删除了PHP标记

还要确保使用mysqli_real_escape_string等来阻止SQL injection

<强>更新 为了响应您的更新,最简单的方法是使用许多markdown语法之一ala Daring Fireball。由于markdown语法不是HTML / PHP标记,它应该没有问题地通过PHP函数,但我自己从未实现过,所以YMMV。