我发送了一些带有一些javascript的邮件到somemail@gmail.com,html部分正常工作,我能够看到按钮。但是当我点击按钮并尝试调用内部函数时,我无法这样做。
我的原始邮件是here
答案 0 :(得分:4)
gmail如何阻止我的js脚本?
由于HTML电子邮件包含HTML,HTML是文本,因此可以以编程方式编辑文本,并将电子邮件发送到Google控制的服务器。
在我的原始邮件(附后)中,没有通过服务
删除js脚本
包括所有电子邮件标头。看起来您已经要求GMail为您提供电子邮件的原始来源。它会这样做,但会对所有HTML进行编码,以便将其呈现为文本。
如果要在HTML呈现为HTML时查看传递给浏览器的HTML,则需要使用浏览器的DOM Inspector功能(开发人员工具)。
为什么会这样做?
浏览器在JavaScript上执行沙盒的批次,并对允许的操作进行非常严格的限制。其中许多限制都是基于JavaScript运行页面的Origin。发送到Gmail的电子邮件会转换为网页,并从gmail.com
(或其他Google域)发送到浏览器。如果页面中遗留了任何JavaScript,那么它将从该源运行 - 浏览器会认为该脚本受到GMail的信任 - 这将是一个可怕的安全漏洞。
利用漏洞的一个简单示例是JavaScript抓取页面的innerHTML
(包含大量帐户信息),使用DOM生成<form>
,然后提交所有数据攻击者的服务器。
更复杂的攻击会使用XHR浏览整个电子邮件帐户并复制每封邮件的详细信息。
或者它可能会使用该帐户发送电子邮件。
或许多其他事情。
答案 1 :(得分:1)
为什么会这样做?
出于安全考虑,我猜..