2009-07-22 68 views
0

我去過一些css/html/js討論板,它提供了一個文本框來輸入html和「運行它!」按鈕在新彈出窗口中運行html。Cookie安全彈出窗口

我想拍一部也,這是很容易在jQuery的:

function try_show_result() { 
    var code = $("#try-input").val(); 
    if (code !== "") { 
    var newwin = window.open('','',''); 
    newwin.opener = null; // 防止代ç ä¿®æ」¹ä¸»é¡µ 
    newwin.document.write(code); 
    newwin.document.close(); 
    } 
} 

但後來我發現了一個安全問題:彈出窗口有運行任意JavaScript的所有能力。因此,當另一個經過身份驗證的用戶在頁面上運行給定的一段代碼時,它可能會竊取cookie或僅通過ajax帖子訪問某些僅用於指定用戶的url。

有沒有簡單的方法來避免這種情況?

更新:我在打開窗口前添加了newwin.document.cookie =「」,不知道這是否更好。

回答

0

有沒有簡單的方法來避免這種情況?

沒有

這就是爲什麼Facebook的走了出去,並寫下自己的JavaScript [FBJS]版本。

+0

我決定放一個大的紅色的橫幅來警告用戶,以避免執行他人的未知腳本:( – Realfun 2009-07-24 03:12:14