Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么javascript不在电子邮件中执行?_Javascript_Email - Fatal编程技术网

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

为什么javascript不在电子邮件中执行?,javascript,email,Javascript,Email,我发送了一封带有javascript的邮件到somemail@gmail.com,html部分正在工作,我可以看到按钮。但当我点击按钮并试图调用内部函数时,我无法这样做 gmail如何阻止我的js脚本? 很高兴看到gmail在任何gmail客户端中阻止javascript,好吧,他们现在有了很好的安全性,但是这是怎么发生的呢?在我的原始邮件(附在下面)中,服务器没有剥离js脚本,它只是传递给客户端(在我的例子中是chrome),客户端不执行。客户端是否维护了一个列表,其中必须执行js,而不能执行

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

  • gmail如何阻止我的js脚本? 很高兴看到gmail在任何gmail客户端中阻止javascript,好吧,他们现在有了很好的安全性,但是这是怎么发生的呢?在我的原始邮件(附在下面)中,服务器没有剥离js脚本,它只是传递给客户端(在我的例子中是chrome),客户端不执行。客户端是否维护了一个列表,其中必须执行js,而不能执行js。谁是停止CHROME执行js脚本的人。现在,如果我创建自己的邮件服务器,那么谁/什么会阻止我的客户机在内部执行js
  • 为什么它会这样做
  • 我的原始邮件是

    它为什么这样做

    出于安全考虑,我想

    gmail如何阻止我的js脚本

    因为HTML电子邮件包含HTML,HTML是文本,文本可以通过编程编辑,电子邮件被发送到谷歌控制的服务器

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

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

    如果希望在HTML呈现为HTML时看到交付到浏览器的HTML,则需要使用浏览器的DOM Inspector功能(“开发人员工具”)

    它为什么这样做

    浏览器在JavaScript上执行大量的沙箱操作,并对允许它执行的操作设置了非常严格的限制。许多限制都是基于运行JavaScript的页面的大小。发送到Gmail的电子邮件会变成网页,并从
    Gmail.com
    (或其他谷歌域名)发送到浏览器。如果在页面中留下了任何JavaScript,那么它将从那个原点运行——浏览器会认为Gmail可以信任脚本,这将是一个可怕的安全漏洞。 利用此漏洞的一个简单示例是JavaScript获取页面的
    innerHTML
    (其中包含大量帐户信息),使用DOM生成
    ,然后将所有数据提交给攻击者的服务器

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

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


    或者其他很多事情。

    从这里开始:谢谢,确实很有帮助。但愿我能投票赞成这个答案