-4

我用一些 javascript 向 somemail@gmail.com 发送了一封邮件,html 部分正在工作,我可以看到该按钮。但是当我单击按钮并尝试调用内部的函数时,我无法这样做。

  1. gmail如何阻止我的js脚本? 很高兴看到 gmail 阻止了任何 gmail 客户端中的 javascript,好的,它们现在具有很高的安全性,但是这是怎么发生的呢?在我的原始邮件(附在下面)中,服务器没有剥离 js 脚本,它只是传递给客户端(在我的情况下为 chrome)并且客户端不执行。客户端是否维护一个列表,它必须在哪里执行 js,在哪里不能。谁是执行 js 脚本的唯一停止 Chrome。现在,如果我创建自己的邮件服务器,在这种情况下,谁/什么会阻止我的客户端执行里面的 js ???
  2. 为什么这样做?

我的原始邮件在这里

4

2 回答 2

4

gmail如何阻止我的js脚本?

由于 HTML 电子邮件包含 HTML,因此 HTML 是文本,可以通过编程方式编辑文本,并且电子邮件会发送到 Google 控制的服务器。

在我的原始邮件(附在下面)中,没有通过服务剥离 js 脚本

这包括所有电子邮件标题。看起来您已要求 GMail 向您提供电子邮件的原始来源。它会这样做,但会对所有 HTML 进行编码,以便呈现为文本。

如果您想在 HTML 呈现为 HTML 时看到交付给浏览器的 HTML,您将需要使用浏览器的 DOM Inspector 功能(开发者工具)。

为什么这样做?

浏览器在 JavaScript 上执行了大量沙盒,并对允许执行的操作设置了非常严格的限制。其中许多限制基于运行 JavaScript 的页面的来源。发送到 Gmail 的电子邮件会变成网页并从gmail.com(或另一个 Google 域)发送到浏览器。如果页面中留下任何 JavaScript,那么它将从该来源运行——浏览器会认为该脚本受 GMail 信任——这将是一个可怕的安全漏洞。

一个简单的漏洞利用示例是 JavaScript 抓取innerHTML页面(包括大量帐户信息),生成<form>带有 DOM 的 DOM,然后将所有这些数据提交给攻击者的服务器。

更复杂的攻击将使用 XHR 遍历整个电子邮件帐户并在那里复制每条消息的详细信息。

或者它可能会使用该帐户发送电子邮件。

或者很多其他的东西。

于 2013-05-27T09:50:46.587 回答
1

为什么这样做?

出于安全原因,我猜..

于 2013-05-27T09:45:18.050 回答