2014-10-22 101 views
6

我寫了一個Web應用程序,通過IMAP獲取電子郵件。我現在需要顯示這些郵件給用戶。 我認爲這將是簡單的(我在顯示HTML的瀏覽器中的HTML),直到我看着這有點...並發現有噸問題,如:如何在Web應用程序中顯示HTML電子郵件?

  • 的Javascript &安全
  • 風格打破
  • 當然更

是否有一個良好的安全如何顯示HTML電子郵件?即使我不想僅顯示電子郵件的文本版本(甚至不能保證在那裏......)

我意識到了「安全」而不是「華麗」最明顯的答案是「把所有東西放在一個框架中」 - 這是否真的如此? 實際上是嗎?

我使用節點服務器端是否有幫助?

回答

6

..most答案顯然是「把一切都在一個框架」 ... ...它實際上工作

是,例如, Whiteout Networks GmbH's WHITEOUT.IO它在/src/tpl/read.html/src/js/controller/read-sandbox.js。是一些安全問題,通過DOMPurify

處理..there噸issues..Is的有一個良好的安全方式..?

我知道下名字EMLMHTML消息數據格式也因此尋找一個「XY到HTML轉換器」或「與XY支持HTML5文檔查看器」可能會指向你一個有用的結果(例如GroupDocs.Viewer

一些電子郵件客戶端(例如Gmail帳戶)不使用iframe,相反,他們使用郵件分析器(如andris9/mailparser)和HTML解析器(如cheeriojs/cheerio)提取電子郵件安全HTML的子集(對於一些示例,參見Stack Overflow: What guidelines for HTML email design are there?Stack Overflow: Styling html email for GMail)或使用HTML sanitizer(例如Google's Caja,cure53/DOMPurify)並將代碼直接嵌入到頁面中。

但它並不總是一件容易的事情,有什麼構成的電子郵件安全HTML的子集,你肯定不慣於內聯可能受感染的附件,也沒有內secured用戶的運行匿名CORS腳本沒有達成共識會話。

無論如何,一如既往地研究各種電子郵件客戶端的源代碼(見Wikipedia: Comparison of email clients)是找到出路..只要提到谷歌的卡哈HTTPS

+2

會接受的答案://代碼。谷歌。com/p/google-caja/wiki/JsHtmlSanitizer這是我的問題的解決方案的關鍵 – Merc 2014-11-21 23:33:28

+0

@Merc在這種情況下,你可以接受你自己的http://stackoverflow.com/help/self-answer和upvote mine帶來一些有用的東西 – xmojmr 2014-11-22 07:33:36

+0

你的答案是驚人的,我認爲它應該是公認的!請僅添加對caja的快速參考,就這些! – Merc 2014-11-22 11:11:07

相關問題