2012-01-12 77 views
5

我期待開發一個網站來承載HTML5遊戲。由於這些遊戲有機會包含惡意JavaScript,我想知道如何設置一個安全的環境來託管它們。安全地在iFrame中執行HTML5/Javascript

這似乎像一個iframe嵌入遊戲的答案,但我是比較新的網站開發,這樣一些問題:

  • 是有安全地主機上的遊戲的簡單方法相同的域,或...

  • 遊戲是否必須託管在不同的域,然後嵌入到iframe中,以便它不能與父文檔進行交互?

  • 如果遊戲在託管於另一個域時執行,它是否可以以任何惡意方式與該主機域進行交互?

+0

iframe + secure =問題總是......請閱讀http://msdn.microsoft.com/en-us /library/bb735305.aspx http://stackoverflow.com/questions/229624/secure-iframe-on-unsecure-page-in-a-different-domain http://www.iframehtml.com/iframe-security.html – 2012-01-12 12:52:42

+0

@DmitryBoyko感謝您的鏈接。很有用。儘管如此,還有什麼其他選擇比使用iframe來完成呢? :) – Matthew 2012-01-12 13:36:48

回答

2

跨站點腳本和cookie的超範圍將是一個非常值得關注的問題。使用瀏覽器的「相同來源策略」將成爲您防範這一問題的有效方法。 ref1ref2

  • 確保您的網站從不同的域名投放到貢獻者應用。 (例如coolgames.com vs mycoolgames.com) - 這會將代碼的原始範圍與他們分開。
  • 確保每個不同的貢獻者都有自己的應用/遊戲(來自獨特的子域)(例如bob.mycoolgames.comdave.mycoolgames.com) - 這將有助於隔離不同開發者的來源。每個人都需要小心,不要將cookie的範圍限制爲.mycoolgames.com,否則他們會過度曝光。

您可能還希望通過在現代瀏覽器中使用新的Content Security Policy支持來進一步保護您自己的應用程序。這將有助於mitigateclickjacking attacks

對於I幀:

你能解釋爲什麼你認爲你需要在所有使用iframe?良好的老式鏈接有什麼問題?

如果圖形設計規定必須使用iframe,那麼您可以輕鬆將所有嵌入式遊戲iframed放入www.mycoolgames.com上的動態頁面,在此您不會保留任何敏感的系統,數據或代碼 - 保留所有用戶身份驗證系統,CMS系統和數據僅適用於* .coolgames.com上的應用程序

+0

謝謝!有關子域的信息尤其有用。 – Matthew 2012-01-12 12:24:02

+0

@Matthew更新爲包含iframe和clickjacking問題 – Cheekysoft 2012-01-12 12:52:57

+0

謝謝。我可以問你最後一行的含義:「我個人會......」?你的意思是隻是將網頁重定向到網站上的託管遊戲? – Matthew 2012-01-12 13:07:49