gpt4 book ai didi

html - 在浏览器中显示 HTML 电子邮件正文之前确保安全

转载 作者:行者123 更新时间:2023-11-28 00:50:47 25 4
gpt4 key购买 nike

我正在开发一个助手(用 VB.NET 为 Winforms 编写)来帮助在我的组织内筛选和分发收到的电子邮件,它现在并将继续由人类员工制作(我只需要加快速度他们的工作)。程序会将每条消息转换为 HTML 文档并将其附件转换为 PDF 并将其存储在内部数据库中。这部分已经在工作了。

我已经在使用 HtmlAgilityPack处理内联图像 ( src="cid:..." ),但我担心我能做些什么来防止消息中的恶意内容在显示时被激活(在 .NET 的 WebBrowser 控件中)。

我想到了我可以做的两件事,同样使用 HtmlAgilityPack:

  • 删除每个 <script>元素;

  • 改变每个 <a href="...">属性为 "#"

任何对这个问题更有经验的人都可以建议我应该采取额外的步骤来“清理”每条消息的 HTML 吗?

非常感谢!

最佳答案

作为额外的安全层,您可以:

  • 使用 URL 扫描器检查嵌入的 URL。我建议 UrlVoid,他们有一个 API也是(如果您已经有适当的病毒扫描程序,则毫无意义)。

  • 按照建议,您可以删除所有 script 和其他所有 style block :

    Dim doc 作为 HtmlAgilityPack.HtmlDocument = New HtmlAgilityPack.HtmlDocument
    文档.LoadHtml(html)
    doc.DocumentNode.Descendants.Where(() => { }, ((n.Name = "script") _
    OrElse (n.Name = "style"))).ToList.ForEach(() => { }, n.Remove)

  • 解析出您不想允许的元素的任何不需要的属性,例如 onclick() 和其他 javascript 事件。

  • 删除其他不需要的标签:HTML Agility Pack strip tags NOT IN whitelist

注意:有很多强大的 PHP HTML 清理器/净化器。您可以使用它们来做一些快速测试(或者甚至使用一个来预处理您的内容)。最常HTML Purifier推荐。

关于html - 在浏览器中显示 HTML 电子邮件正文之前确保安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47574899/

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