我有一个使用https://github.com/dpallot/simple-websocket-server用python编写的websocket服务器,我想知道是否可以检查客户端用来连接到websocket服务器的网站的URL ?
例如,网站是http://websockettest.com/,我想在Python中检查用户是通过websockettest.com连接的,而不是通过另一个网站。
这可能吗?
首先,我猜"客户端正在使用的网站的URL"是指window.location
,一个可以在浏览器环境中使用的JavaScript对象。可能有许多方法可以将其传输到后端,但是这种方法是否安全?我甚至不确定在这种情况下"安全"是什么意思。你需要像nonce这样的东西提供在你要交付给浏览器的网站内,该网站的JS代码应该通过HTTPS将window.location
值(web浏览器栏中的URL)与nonce一起发送到websocket服务器,后端需要验证nonce。
我想你应该想想为什么你想要实现这个目标。是否要禁止外国客户端连接到您的服务?这是不可能的。服务访问受身份验证(即凭据)的限制。理论上,任何人都可以实现他自己的客户端,并在给定有效凭证的情况下使用您的服务。