2013-07-02 36 views
4

比方說,我有一個頁面example.com。此頁面包含一個iframe,顯示sandbox.example.com子域上的iframe是否提供了足夠的JS沙箱?

--------------------------- 
| example.com    | 
| ----------------------- | 
| | sandbox.example.com | | 
| | (<canvas> + js) | | 
| ----------------------- | 
--------------------------- 

沙盒將執行可能具有潛在危險的腳本。沙箱將是我自己的JavaScript的混合體,與其他來源的不可信JavaScript代碼一起運行。

我會將我的應用程序路由中的很少一部分暴露給sandbox.example.com,以便相同的源策略應該防止任何敏感數據或操作的訪問。像會話cookie被盜,以及驗證ajax請求更改密碼是我試圖避免的問題的類型。

的想法是有一個可擴展的渲染引擎,由我公司提供,這是由代碼他人擴展,都扔進一個頁面渲染到一個單一的畫布。

那麼這會被認爲是安全的嗎?如果您登錄到example.com,並在sandbox.example.com上運行iframe,並在其中執行不受信任的JS,那麼您是否會面臨任何類型的攻擊?

而且是一個子域是否足夠?或者如果它是一個完全不同的領域,它會是安全的嗎?

+0

任何與「.example.com」而不是「example.com」相關的cookies都可供所有子域訪問。除此之外,我認爲你很安全。 – Barmar

回答

1

存在與不可信和不安全Javascript相關的風險 - 無論它是否在iframe中運行。但Same Origin Policy指示沙盒中的任何腳本都不能干涉example.com中的任何內容。