2014-09-26 100 views
0

假設我在我的HTML中有一個表單域,其name屬性爲message。在這種形式下,用戶將(應該)輸入電子郵件的正文。然後這封電子郵件將通過Javascript從瀏覽器發送。我完成此操作的方式是在mailto:字符串上使用window.open()通過mailto的Javascript注入:

function validateAndSend(form) { 
    var body = form.message.value; 

    window.open("mailto:[email protected]?body=" + body); 
} 

這種方法適用於我,但我擔心它的安全性。我聽說過SQL注入,,我想知道是否同樣的事情適用於我的情況。

是否有可能爲惡意用戶輸入內容的表單字段,這將造成傷害,如

  • 盜竊任何種類的信息
  • 的執行自己的Javascript代碼

我試過的東西

  • 我已在發送電子郵件之前添加了檢查,以查看文本字段 是否至少包含一個字符,以避免發送大量垃圾郵件 電子郵件。
  • 幾個測試用例,我將各種<script>標籤添加到輸入文本中,試圖通過輸入運行我自己的代碼。這些惡意腳本只是顯示在電子郵件的正文中,不會影響任何內容。

上午我通過使用mailto:易受JavaScript注入?

+1

在你的例子中,用戶通過修改源代碼可以做的唯一事情就是改變默認郵件應用程序中的填充值這將由瀏覽器啓動。除此之外,我不明白Web表單中的驗證如何用於任何目的,因爲驗證不會出現在他們的郵件應用程序中。 – 2014-09-26 02:20:10

回答

0

mailto:將簡單地加載OS /瀏覽器定義的協議的默認處理程序與指定的主體。這最終與直接向您發送電子郵件的內容沒有什麼不同。

既然你談談惡意腳本仍呈現在你試圖淨化郵件的正文,我覺得你更關心的是有人直接發送,爲您和足夠深到您當前的問題,你忘記了任何人都可以隨時向你發送同樣的電子郵件...... :-)