打开Websocket之前的身份validation

什么是最先进的方式来确保一个WebSocket与身份validation?

问题是,每个人都可以下载js文件,并查看该页面连接到哪个websocket的主机和端口。 我想到的唯一方法是:打开一个wss(安全websocket),并发送例如证书,并closures服务器端的连接,如果凭据是错误的?

首先,一个WebSocket请求有一个Origin HTTP标头,指示客户端运行的域。 因此,如果您的网站是www.whatever.com,并且您以www.smartass.com作为出处获得WebSocket请求,您可以拒绝。 这将阻止其他用户无意中连接到您的服务。 也就是说,仍然有可能通过伪造头文件来访问您的服务,但是必须有目的地完成。

WebSockets使用HTTP协商,所以他们可以在协商时携带cookie。 如果您的WebSocket服务与您网站的其他部分位于相同的域或子域中,则可以共享Cookie。 因此,例如,当用户login成功时,将返回一个cookie,用于在与服务器的每个HTTP交互(包括WebSocket服务)中validation自己。 只要拒绝没有有效的cookies的任何请求,你就完成了。

如果他们在不同的领域,你可以做你所说的,使用loginRequest / loginResponse消息来validation连接。