打开websocket连接的安全问题是什么?



我正在构建一个使用websockets的应用程序。我只允许经过身份验证的用户在登录并被授予会话id后与服务器打开websocket连接。

  1. 一旦我打开了一个websocket连接与认证的用户,当前的"页面"然后保存打开的websocket连接的详细信息。在这一点上,这种连接是否相对安全?或者我真的应该在我自己的应用级协议中通过websocket传入的每条消息上检查一些令牌吗?

  2. 是否存在已知的跨站点伪造类型的安全问题?在哪里,有人可以通过让经过身份验证的用户以某种方式执行一些javascript来窃取开放的websocket -从而能够利用开放的websocket连接?

1)连接是安全的,当你使它在服务器端安全。所以你必须通过WebSockets发送一个会话ID,在服务器端验证它是正确的,并将连接标记为有效。使用HTTP进行身份验证更加困难,因为HTTP是无状态的(与原始TCP不同)。当然,仍然有可能劫持TCP连接,但这并不那么容易(参见本文中的示例),如果发生这种情况,那么除了TLS之外,没有什么可以帮助您。

好吧,如果你用一个匿名函数包装你的WebSocket连接,像这样:
(function() {
    var ws = new WebSocket("ws://localhost:1000");
    // some other stuff
})();

则没有外部JavaScript能够访问它,所以你不必担心。

相关内容

  • 没有找到相关文章

最新更新