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