PHP站点防止XSS太好了

时间:2013-12-08 20:11:19

标签: php xss htmlspecialchars

我有一个博客系统,随机的人可以发表评论。如果顽皮的人试图发布Javascript,就会发生这种情况:

bla bla <script>alert("Hacked")</script>

变成

bla bla &lt;script&gt;alert(&quot;Hacked&quot;)&lt;/script&gt;

我希望帖子能够保持代码不变,以防万一有人需要发布HTML。如何使第二行看起来像第一行,而不实际做任何事情?我过滤它的当前方式是:

$safeMessage = htmlspecialchars($reply['message'], ENT_QUOTES | ENT_HTML401, 'UTF-8');

echo "$safeMessage";

1 个答案:

答案 0 :(得分:0)

我能想到的最佳方法是使用HTML Purifier并仅指定您要允许的HTML子集。查看文档here