为什么javascript不在电子邮件中执行?

时间:2013-05-27 09:43:38

标签: javascript email

我发送了一些带有一些javascript的邮件到somemail@gmail.com,html部分正常工作,我能够看到按钮。但是当我点击按钮并尝试调用内部函数时,我无法这样做。

  1. gmail如何阻止我的js脚本? 很高兴看到gmail阻止任何gmail客户端内部的javascript,好吧,他们现在具有很高的安全性,但这是如何发生的?在我的原始邮件(附在下面)中,没有服务器剥离js脚本,它只是传递给客户端(在我的情况下为chrome),客户端不执行。客户端是否维护一个必须执行js的列表以及不能执行js的列表。世界卫生组织是执行js脚本的一个停止的核心。现在,如果我创建自己的邮件服务器,在这种情况下谁/什么将阻止我的客户端执行里面的js ???
  2. 为什么会这样做?
  3. 我的原始邮件是here

2 个答案:

答案 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)

  

为什么会这样做?

出于安全考虑,我猜..