1

我正在运行一个 MySql 和 PHP 驱动的博客/评论风格的网站,并且希望它可以让用户可以在他们的帖子中添加格式化标签,例如<bold><italics>等标签,但是,同时运行类似 htmlentities 这样用户可以不要发布类似<a><div id="footer">破坏网站的内容。

所以问题是我该如何解决这个问题?我是否将其设置为 htmlentities 或类似功能具有允许标签的白名单?我无法找到有关此问题的任何结果或帮助。目前我对数据库实体的分层顺序是:

$content = nl2br ($_POST["content"]);
$content = mysql_real_escape_string($content);
$content = trim($content);
$content = htmlentities($content);

谢谢你的帮助。同样,我想知道 htmlentities 是否甚至是我想要用来完成此任务的功能,所以任何建议或查看的地方将不胜感激!

4

1 回答 1

2

白名单是必须...使用strip_tags()函数,带有第二个参数。

// Allow <p> and <a>
echo strip_tags($text, '<p><a>');

不要将编码的 html 保存在数据库中。

于 2012-12-23T08:32:50.313 回答