Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中允许安全的html标记列表?_Php - Fatal编程技术网

如何在php中允许安全的html标记列表?

如何在php中允许安全的html标记列表?,php,Php,我想在php响应中允许html元素的特定列表。我的网站由一些带有php内容的页面组成。在我的数据库中,我存储了一些记录,其中包含一些混合了html元素的文本 我目前正在使用htmlentities函数转义此内容。这在大多数情况下都能很好地工作,但在本例中,它也会清理我的安全html标记 我遇到了几个可能的解决方案: Htmlpurifier 这似乎是最好的解决方案。然而,htmlpurifier缺乏html5支持。我真的很想使用一些html5标签。在我遇到的类似帖子中,这个选项是最受推荐的 带标

我想在php响应中允许html元素的特定列表。我的网站由一些带有php内容的页面组成。在我的数据库中,我存储了一些记录,其中包含一些混合了html元素的文本

我目前正在使用htmlentities函数转义此内容。这在大多数情况下都能很好地工作,但在本例中,它也会清理我的安全html标记

我遇到了几个可能的解决方案:

Htmlpurifier
这似乎是最好的解决方案。然而,htmlpurifier缺乏html5支持。我真的很想使用一些html5标签。在我遇到的类似帖子中,这个选项是最受推荐的

带标签() 这是我从htmlpurifier比较页面复制的一个引用

PHP函数striptags()是尝试清理HTML的经典解决方案。这也是最糟糕的解决方案,应该像瘟疫一样避免。事实上,它根本不验证属性,这意味着任何人都可以插入属性。 虽然这可以通过在[event]上剥离的一系列正则表达式来实现(您仍然容易受到XSS的攻击,并且受古怪浏览器行为的摆布),但striptags()从根本上来说是有缺陷的,不应该使用

有什么好的替代方案可以推荐给你们,允许html(5)标签列表吗?我是否应该使用图书馆


使用bb标签可能是个好主意吗?

这是一个非常好的列表:

<br><p><a><strong><b><i><em><img><blockquote><code><dd><dl><hr><h1><h2><h3><h4><h5><h6><label><ul><li><span><sub><sup>


您可以使用DOMDocument()并加载HTML(),尽管您会收到HTML5标记的警告,因此必须关闭错误

但是,如果您不想编写代码,或者不喜欢DOMDocument缺乏对HTML的支持,那么您可以尝试packagist中解析HTML5()的任何库。在这种情况下,如果您正在使用Composer,将是最简单的解决方案


希望这能有所帮助。

你似乎误解了这个问题。它并不是要求列出安全的标签。我真的怀疑
a
span
img
标签是否真的安全。也许其他一些人也看到了至少是不安全的,和其他人一样危险。不允许在您的网站上使用标签!“然而,htmlpurifier缺乏html5支持。”-你怎么会这么想?我记得不久前你问过同样的问题;你为什么要删除它?@Fred ii-是的,没错。你建议我重写这个问题。因此,我认为最好删除旧的、不清楚的问题,并用这个问题替换它。@Quentin它不接受html5 doctype和video标签。这就是我读到的。我没有说要“重写”这个问题,我记得我让你贴了一个示例标签,我记得你没有这样做。非常感谢你花时间帮助我。这个文件看起来不错。不过我有几个问题。这是向响应中添加元素的安全方法吗?你们有性能方面的经验吗?我有DOMDocument方面的经验,但我并没有做性能指标,它只是按照预期工作。。。我使用DOMDocument将CKeditor输出解析为客户端的Facebook即时文章格式。在一开始,这有点困难,但将一个问题划分为小规模的和平行动,几乎使每个问题都很容易解决。我还没有遇到性能问题。