发布:2022年6月29日在14:00 UTC
更新:2022年7月4日在07:46 UTC
这HTML消毒剂是一个很棒的新API,允许Web开发人员在浏览器中本地过滤不受beplay体育能用吗信任的HTML,而不是使用JavaScript库,例如DOM PURIFY。Microsoft在2008年为Internet Explorer创建了一个类似的API,但它是谜和孔并且没有被广泛采用或标准化。希望消毒剂将获得更多成功。
使用本机浏览器功能的优点是显而易见的。如果浏览器用于过滤HTML,则可以使用自己的解析器来确保不信任的HTML始终如一地过滤。
但是,与过滤后的HTML的实际现实相比,消毒剂认为的安全性可能存在分歧。一个这样的例子是SVG“使用”元素;我们已经过去显示的“使用”元素可用于执行任意JavaScript通过使用数据URL。
消毒剂通过使用数据URL和相对URL阻止SVG导入来防止这些攻击。但是,只要它们的起源相同,它允许从绝对URL中进口SVG。这意味着,如果目标站点允许上传SVG文件的文件,并通过使用Content-Disposition强制下载:附件来保护它,则仍然可以执行任意JavaScript。
这是消毒剂不正确地过滤的不受信任的HTML的结果:
输入:
输出:
用于消毒HTML的浏览器API是一个好主意,因为浏览器可以正确过滤HTML,但这并不意味着它们是防止恶意HTML偷偷摸摸的万无一失的机制。与任何过滤器一样,这样的功能需要大量测试以确保对恶意HTML的正确过滤。
请注意,这是一个实验性的API,尚未得到广泛支持。
2022-02-25 09:42 PST-向Mozilla报告了错误
2022-04-29 15:03 PDT-固定
2022-06-28-释放Firefox 102.0
2022-06-29 GMT下午15:00 - 发布了此帖子