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

Cyc*_*ops -3 javascript email

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

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

我的原始邮件在这里

Que*_*tin 5

\n

gmail 如何阻止我的 js 脚本?

\n
\n\n

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

\n\n
\n

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

\n
\n\n

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

\n\n

如果您希望在 HTML 呈现为 HTML 时查看传递到浏览器的 HTML,则需要使用浏览器的 DOM 检查器功能(开发人员工具)。

\n\n
\n

它为什么这么做?

\n
\n\n

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

\n\n

一个简单的漏洞示例是 JavaScript 获取innerHTML页面的内容(其中包括大量帐户信息),使用<form>DOM 生成 DOM,然后将所有数据提交到攻击者的服务器。

\n\n

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

\n\n

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

\n\n

或者许多其他的事情。

\n