如何动态地插入可能包含链接和脚本标签的html
How to dynamically insert html which may contain link and script tags?
我正在使用jQuery构建一个显示电子邮件的网页。这些电子邮件是从REST服务中读取的,可以是纯文本或html。
到目前为止,我测试过的所有html格式的邮件都只有正文内容-即没有<html>
或<head>
或<body>
。今天我收到一封html格式的邮件,里面有一整个文档。标题和正文标签被过滤掉了(大概是由浏览器),但我的问题是邮件使用的样式是从发件人的网站获取的。
这引发了一系列关于安全等方面的问题。我的应用程序应该允许这样的链接吗?我应该提取link
和script
标签并将它们插入我的页面head
中吗?
是否有其他类似iframe
的解决方案?
我认为你应该使用iframe来显示你的邮件内容。这样你就可以依靠浏览器的安全功能,减少XSS漏洞。
发送HTML内容的服务应该剥离脚本标签,并设置content-security-policy头以禁用内联脚本。
即使您希望允许在邮件中执行脚本(我不假设),iframe也比将邮件内容注入您自己的DOM中提供更好的隔离。
您真的应该拒绝脚本。
无论如何,你当然可以动态加载/填充iframe。只需更新其src
。iFrame不是一个安全保险的思想。
注意:你的问题不是代码问题。在我看来,不应该在这里张贴。
iFrame提供了很少的隔离-至少它隔离了css样式…- - - - - -。XSS可以在没有script
的情况下发生。另外,script
在客户端执行。它能做什么,可能是显示色情,或不公平的东西,或窃取本地信息?本地存储?显示html
对您的系统来说真的没有什么危险。XSS工作在表单中,表单是有针对性的,背后有数据库进程。但是如果你只显示html
,天哪,你可以保持凉爽。删除脚本,因为没有理由在邮件中有脚本
没有必要感到害怕,因为任何人都在谈论SQL注入, XSS等等。说没有表单,没有ajax,在你的情况下,这是荒谬的,抱歉,回答有风险。在显示HTML时没有什么好担心的。省时省力
相关文章:
- 如何使用JQuery在HTML中创建包含字符串参数的引号的onclickjavascript链接
- 正在尝试将标题标记添加到mailto链接,正文中包含URL
- 当页面包含指向一个图像的多个链接时,fancyBox会复制缩略图辅助图像
- 我发现了一些只在移动设备上可见的垃圾邮件链接,我可以'找不到包含此垃圾邮件链接的脚本的位置
- 如何进行AJAX调用,使其仅在我单击包含在特定类中的链接时触发;id”;父元素的
- 链接问题:下一个字符包含在<a>TinyMce ui TinyMce中的标签
- 在 html 文件中包含无缓存元标记是否也会阻止缓存该 html 文件中链接的 js 和 css 文件
- 从chrome扩展创建一个包含POST数据的链接
- DataTable如何防止在包含超链接的列中单击行
- 如何根据链接中包含的字母/单词查找并单击链接
- 获取包含单击链接的DIV的文本
- 如何选择仅包含链接的块级元素及其父元素
- 如何使用Angular 2服务提供包含指向另一个资源的链接/ids的资源集合
- 只要所有链接包含相同的值,它们都将处于活动状态
- 阻止某些链接(包含某些字符串的 href)工作
- 外部链接包含facebook连接功能
- 添加类到链接包含特定文本的href
- 列表视图链接包含特殊符号
- Html javascript链接包含Html 5 Boilerplate中的url变量
- 当不同的链接包含相同的单词时,将单词替换为链接