代码之家  ›  专栏  ›  技术社区  ›  user935714

弹出窗口的cookie安全性

  •  0
  • user935714  · 技术社区  · 15 年前

    我去过一些CSS/HTML/JS讨论板,它提供了一个文本框来输入HTML并显示“运行它!”按钮在新弹出窗口中运行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=“”,不确定是否更好。

    1 回复  |  直到 15 年前
        1
  •  0
  •   epascarello    15 年前

    有没有一种简单的方法可以避免这种情况?

    这就是为什么facebook推出了自己的javascript[fbjs]版本。