gpt4 book ai didi

php - html净化器的替代品

转载 作者:可可西里 更新时间:2023-11-01 00:17:26 25 4
gpt4 key购买 nike

我想接受来自用户的 html 输入并将其发布到我的网站上,还想确保它不会由于脏 html 代码而导致我的网站模板出现问题。

我过去使用过 html 净化器,但 Html 净化器无法在我的其中一台服务器上运行。所以我正在寻找最佳选择。这纯粹是用 php 编写的。 它可以修复像

这样的脏 html 代码
</div> it is dirty code as div is closed without opening. 

最佳答案

没有第三方库的简单解决方案:创建一个 DOMDocument 并调用loadHTML用你的输入。用 <html> 包围输入和 <body>如果您只解析一小段代码,请使用标签。您可能也想抑制警告,因为您会因为常见的错误 HTML 而吐出它们。

然后简单地遍历生成的文档树,删除您未包含在已知良好列表中的所有元素和属性。您还应该检查允许的 URL 属性以确保它们使用已知的良好方案,如 http: ,而不是潜在麻烦的方案,如 javascript: .如果您想更进一步,您可以检查是否只有允许的元素组合相互嵌套(允许的元素数量越少,这就越容易)。

最后,使用 saveHTML 再次序列化代码片段的节点。 .因为您是从 DOM 创建新的标记,而不是维护原始的(可能格式错误的)标记,所以您要阻止的是一整类奇怪的标记注入(inject)技术。

关于php - html净化器的替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4047655/

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