2013-05-05 30 views
2

我希望用戶能夠在域example1.com上的應用程序中提交和呈現不受信任的HTML。爲了防止惡意XSS捕獲用戶的Cookie,我們的想法是在使用不同域的iframe中打開HTML,比如example2.com。但爲了看到這個HTML,用戶必須在example1.com上登錄。僅當用戶登錄並在example1.com上進行身份驗證時,如何僅在example2.com上的iframe中呈現HTML?在不登錄的情況下通過iframe進行跨域身份驗證

我在想也許使用一個通過postMessage傳遞的祕密,它傳遞一個表單來呈現HTML而不需要設置cookie。每當我想通過JavaScript更新iframe的內容時,我只需重新創建iframe,然後再次傳遞祕密並再次發佈表單以呈現不受信任的HTML。惡意JavaScript無法訪問祕密,因爲只有在發佈該表單的上一頁上才存在該祕密。這是一個好的解決方案還是有更好的?

回答

3

每次用戶登錄example1.com時,都會爲它創建一個令牌。

要打電話給你的iframe中的內容使用類似example2.com/view.php?page=1 &令牌= dsjahdjkhjh331

所以惡意腳本只能拿到令牌,而不是餅乾。如果您爲令牌創建了「指紋」,例如使用請求地址(IP)+瀏覽器代理對用戶進行concat,則竊取令牌與竊取隨機字符串相同。

+0

是的這將工作。謝謝! – 2013-05-05 02:30:56