我去过一些css / html / js讨论板,它提供了一个输入html的文本框和一个“Run it!”。按钮在新弹出窗口中运行html。
我也想制作一个,这在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 :(得分:0)
有没有一种简单的方法可以避免这种情况?
没有
这就是为什么Facebook出去编写自己的JavaScript版本[FBJS]。