0

嗨,

我在 HTTPS 下的 NodeJS 环境中运行 socket.io 服务器。调用我的应用程序以开始与我的 socket.io 服务器通信的 js 代码在 sharePoint 2013 实例 (Office 365) 上运行。

如果我在 Chrome 或 Firefox 中访问我的页面,一切正常。在 iE10 中,我从控制台中的 socket.io 客户端得到以下警告

SCRIPT5: Access is denied. 
socket.io.js, line 1641 character 9

这是以下行

    xhr.open('GET', url, true);

似乎来自 SharePoint 的 iE 或 IIS 在使用 jsonp/xhr - 轮询时假定了 XSS。配置的传输是

  • 'jsonp-轮询'
  • '网络套接字'
  • 'xhr 轮询'

以该顺序。我们用

  • 套接字服务器 0.9.16
  • 套接字客户端 0.9.11

仅出于测试目的,我刚刚设置

   io.util.ua.hasCORS = false;

在第 1626 行,这有帮助,但当然会导致安全警告 allá

SEC7130: Potential cross-site scripting detected

有谁知道我做错了什么或这里有什么问题?提前致谢!


在我进行更多研究后进行编辑,我在googleGroups上发现了以下讨论。我还评论了我的GitHub 问题

4

2 回答 2

1

固定的!解决方案是您必须在发送 cookie 之前添加一个 p3p 标头。标题应该看起来像这样

res.setHeader("p3p", "CP=\"COM CNT DEM FIN GOV ONL OTC PHY ALL DSP NID OHO CUR OUR BUS IND LEG NOR STP\"");
于 2013-07-10T08:32:17.487 回答
0

在行上设置一个断点并检查 url。我的应用程序运行,http://www.localhost/(...)网址是http://localhost/(...).

var socket = io.connect('http://localhost:4000', { query: "fk="+my_id });

var socket = io.connect('http://www.localhost:4000', { query: "fk="+my_id });

问候。

于 2014-07-17T22:10:27.463 回答