yoj*_*o87 29 security websocket
使用websocket连接时,对用户进行身份验证的可能方法有哪些?
示例场景:通过加密websocket连接的基于Web的多用户聊天应用程序.如何确保(或保证)此应用程序中的每个连接都属于某个经过身份验证的用户,并且在连接期间由于虚假用户模拟而"无法"利用该连接.
Der*_*mer 42
如果您已经对应用程序的非websocket部分进行身份验证,则只需在连接后将会话cookie作为第一条消息传递,并像往常一样检查cookie.
警告:有人指出,当使用flashsocket时,以下内容不起作用:
如果您使用的是socket.io,则更容易 - Cookie会在连接时自动传递,并且可以像下面这样访问:
var io = require('socket.io');
var socket = io.listen(app);
socket.on('connection', function(client){
cookies = client.headers['cookie'];
});
Run Code Online (Sandbox Code Playgroud)
SSL/TLS 可用于使用 X.509 证书对客户端和服务器进行身份验证。这取决于您使用的网络应用程序平台。在 apache 中,可以根据已知有效证书列表检查SSL_CLIENT_CERT环境变量的有效性。这不需要使用完整的 PKI,也不需要您为每个客户端购买证书。尽管我建议使用 CA 来支持服务器的 ssl 证书。
| 归档时间: |
|
| 查看次数: |
16767 次 |
| 最近记录: |