2013-05-27 93 views
-4

我用javascript發送了一封郵件到[email protected],html部分正在工作,我能夠看到按鈕。但是,當我點擊按鈕,並嘗試調用一個函數,我不能這樣做。爲什麼JavaScript不在電子郵件內執行?

  1. gmail如何阻止我的js腳本? 很高興看到gmail阻止任何Gmail客戶端內的JavaScript,確定他們現在具有很高的安全性,但這是如何發生的?在我原來的郵件中(下面附上),服務器沒有剝離js腳本,只是傳遞給客戶端(我的情況是chrome),客戶端不執行。客戶是否要維護一個必須執行js的列表,以及它不能執行的列表。誰是一個停止執行js腳本的人。現在,如果我創建自己的郵件服務器,在這種情況下,誰會阻止我的客戶端執行內部的js?
  2. 爲什麼這樣做?

我原來的郵件是here

+0

從這裏開始:http://javascript.about.com/od/reference/a/jsemail.htm – Knelis

回答

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來瀏覽整個電子郵件帳戶並複製每封郵件的詳細信息。

或者它可能使用該帳戶發送電子郵件。

或許多其他事情。

+0

謝謝,確實非常有幫助。希望我能夠爲這個答案投票 – Cyclops

1

它爲什麼這樣做?

出於安全原因,我想..

相關問題