【发布时间】:2012-10-22 08:54:46
【问题描述】:
我希望我的论坛用户能够插入链接和其他允许的标签。例如,我希望帖子中的以下 HTML 按照作者的意图显示(即作为功能链接):
<a href="http://www.example.com" rel="nofollow">A page</a>
但是,我想保持一定程度的安全性,并且一直在阅读 strip_tags() 和 htmlspecialchars()。起初我认为我可以将 strip_tags 与以下内容一起使用:
<?php $link_string = strip_tags($link_string, '<a>'); ?>
但如果我理解正确,strip_tags 不会像 htmlspecialchars 那样保护我。例如,使用特殊字符的不正确 HTML 代码会使我容易受到攻击。 link 标签的 style 和 onmouseover 属性也是如此。
什么是最简单的解决方案,可以在帖子中允许上述链接,同时清除可能有害的字符和代码?无论如何,我可以将这两个 PHP 函数以 simple 的方式组合起来吗?
【问题讨论】: