【问题标题】:How to dynamically insert html which may contain link and script tags?如何动态插入可能包含链接和脚本标签的html?
【发布时间】:2015-10-12 01:14:22
【问题描述】:

我正在使用 jQuery 构建一个显示电子邮件的网页。电子邮件是从 REST 服务读取的,可以是纯文本或 html 格式。

到目前为止,我测试过的所有 html 格式的邮件都只有正文内容 - 即没有 <html><head><body>。今天我收到一封 html 格式的邮件,里面有一个完整的文档。头部和身体标签被过滤掉(大概是浏览器),但我的问题是邮件使用的样式是从发件人的网站获取的。

这引发了一系列关于安全性等问题。我的应用是否应该允许此类链接?我应该提取linkscript 标签并将它们插入我的页面head 吗?

还有类似iframe的解决方案吗?

【问题讨论】:

标签: javascript jquery html email


【解决方案1】:

你真的应该拒绝这些脚本。

无论如何,您当然可以动态加载/填充 iframe。只需更新其src。 iFrame 不是一种安全保险思想。

注意:您的问题不是代码问题。不应在 IMO 此处发布。

【讨论】:

  • 我没有src(html文件)但是看到有办法直接填充iframe
  • 但这是一个解决重要网络安全问题的通用软件工程问题
  • @paul 很好,脚本不应该那么危险,但是没有理由编写邮件脚本,这样的事情是可疑的。过滤掉脚本。
【解决方案2】:

我认为您应该使用 iframe 来显示邮件的内容。这样您就可以依赖浏览器的安全功能并缓解 XSS 漏洞。

发送您的 HTML 内容的服务应去除脚本标签,并设置 content-security-policy 标头以禁用内联脚本。

即使您希望允许在电子邮件中执行脚本(我不假设),iframe 也比将邮件内容注入您自己的 DOM 提供更好的隔离。

【讨论】:

  • 实际上,iFrame 提供的隔离很少。 XSS 可以在没有script 的情况下发生。此外,“脚本”在客户端执行。它可以做什么,比如展示色情内容、不公平的东西,或者窃取本地信息?本地存储。
【解决方案3】:

iFrame 提供很少的隔离 - 至少它隔离 css 样式... - 实际上。 XSS 可以在没有script 的情况下发生。此外,script 在客户端执行。它可以做什么,比如展示色情内容、不公平的东西,或者窃取本地信息?本地存储?显示html 对您的系统来说真的很少有危险。 XSS 在表单中起作用,表单是有针对性的原因 - 背后 - 有数据库进程。但是如果你只显示html,omg,你可以保持冷静。只需删除脚本即可,因为没有理由在邮件中包含脚本

而且没有必要感到害怕,因为任何人都在谈论 SQL 注入XSS 等等。说没有表格,没有ajax,就你而言,这很荒谬,对不起,回答有风险。 您无需担心显示 HTML。节省您的时间。

【讨论】:

  • 不正确。 XSS 不需要数据库或表单。如果攻击者知道用户使用保罗的软件,他可以向用户发送恶意电子邮件并在用户会话中执行代码。编辑:另外请不要告诉寻求安全建议的人“没有什么好害怕的”。
  • @SebastianS 没错。攻击者可以发送恶意邮件并执行代码。他可以用 XSS 执行的代码做什么?进行 攻击?将您的 CSS 从蓝色更改为红色?你在开玩笑吗 ?天哪,请学习。没有 Java脚本 你什么都做不了 > en.wikipedia.org/wiki/Cross-site_scripting + en.wikipedia.org/wiki/…
  • 触发转发按钮(窃取信息)或回复所有按钮(垃圾邮件)怎么样?只是因为你想不出任何攻击它并不没有任何攻击。你不知道网络应用程序,保罗正在计划
  • @SebastianS 一个回复按钮,在哪里? Paul 想要显示邮件内容。他从不谈论行动。 “你不知道 web 应用程序,paul 正在计划”,我知道 Paul 在这里描述的内容,我不在他的脑海中。正确描述您的问题是 SO 中的基本规则。祝你有美好的一天。
  • 没有 Javascript 你什么都做不了(除了 Scriptless XSS):没错。这就是他问题的全部意义所在。这就是为什么防止脚本执行如此重要的原因。您不了解应用程序,因此您无法对攻击做出假设。很难想象,应用程序有一些功能,攻击者想与用户的会话一起使用吗?
猜你喜欢
  • 2022-01-06
  • 2017-01-21
  • 2019-02-13
  • 1970-01-01
  • 2012-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多