2012-03-06 65 views
2

我試圖在HTML頁面上顯示一個HTML電子郵件。從技術上講,我可以做到這一點,但安全是一個問題,攻擊者可能會形成惡意代碼並將其放入html電子郵件。顯示HTML從網站上的電子郵件

我已經嘗試過使用Microsoft XSS庫來消毒html,但是它已經去掉了很多它基本上不值得。

我想知道是否有iframes或更好的解決方案。例如,有沒有辦法在iframe中保護數據?

GMail似乎顯示html電子郵件,他們必須有一個很好的html消毒。

+0

不知道我明白。 HTML中的電子郵件實際上不能做任何惡意的事情。我想有人可以嘗試元刷新,但這不應該工作,因爲HTML電子郵件正文中沒有'head'元素。大多數電子郵件客戶端都會高興地顯示HTML電子郵件,而不必擔心安全問題。基於Web的郵件客戶端可能會在某種程度上進行消毒,但我不確定這些客戶端有多少與安全相關。 – 2012-03-06 06:04:29

+0

有什麼不明白的地方?您可以將任何html寫入電子郵件,理論上可以編寫惡意JavaScript。 – rid00z 2012-03-06 23:19:09

回答

0

你的基本選項是:

  1. 消毒HTML(使用白名單的方式,爲安全)
  2. 在不同的域使用iframe有一個src,或與HTML5​​屬性

兩者都可以有效地完成,並且細節有很多變化。

關於消毒這麼多這是不值得的:良好的庫,例如https://github.com/guardian/html-janitor/(JavaScript的)和https://github.com/jsocol/bleach(蟒蛇)具有自定義白名單的能力。這取決於你是否試圖用基本格式來呈現典型的用戶生成的HTML電子郵件,或者如果你想顯示完整的「設計」通訊與大量的圖像,表格等。如果只是前者,在一些快速試驗使用漂白劑,我可以通過簡單地將brdiv添加到已批准標記的列表中,使大多數電子郵件看起來不錯,因此空白不會被擦除。

相關問題