我希望我的论坛用户能够插入链接和其他允许的标签。例如,我希望帖子中的以下 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 函数组合起来以一种简单的方式做到这一点吗?