gpt4 book ai didi

html - 清理不受信任的 HTML5

转载 作者:太空狗 更新时间:2023-10-29 15:28:33 26 4
gpt4 key购买 nike

我希望能够接受来自不受信任用户的 HTML 并对其进行清理,以便我可以安全地将其包含在我网站的页面中。我的意思是,标记不应该被剥离或转义,但应该基本不变地通过,除非它包含危险的标记,例如 <script>。或 <iframe> ,危险属性,例如 onload ,或危险的 CSS 属性,例如背景 URL。 (显然一些较旧的 IE 会在 CSS 中执行 javascript URL?)

提供来自不同域的内容并封装在 iframe 中并不是一个好的选择,因为没有办法提前告诉 iframe 必须有多高,所以对于某些页面来说它总是看起来很丑。

我查看了 HTML Purifier,但它似乎还不支持 HTML5。我还研究了 Google Caja,但我正在寻找一种不使用脚本的解决方案。

有谁知道可以完成此任务的图书馆吗? PHP优先,乞丐不可挑剔。

最佳答案

黑名单方法让您面临升级压力。因此,每次浏览器开始支持新标准时,您都必须将您的清理工具提升到同一水平。这种变化比您想象的更频繁。

白名单(由 strip_tags 实现,但有明确定义的异常(exception)情况)会减少用户的选择,但会将您放在保存站点上。

在我自己的网站上,我的政策是在非常受信任的用户(例如管理员)的页面上应用黑名单,在所有其他页面上应用白名单。这让我处于不花太多精力进入黑名单的位置。有了更成熟的角色和权限概念,您甚至可以细化黑名单和白名单。


更新:我猜你在找这个:

我明白 strip_tags 在标签级别列入白名单但在属性级别接受所有内容。有趣的是,HTMLpurifier 似乎在属性级别上进行了白名单。谢谢,在这里学习很愉快。

关于html - 清理不受信任的 HTML5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17691758/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com