检查 websocket 客户端的 URL - python

Check URL of websocket client - python

我有一个使用 https://github.com/dpallot/simple-websocket-server 用 python 编写的 websocket 服务器,我想知道是否可以检查客户端正在使用的网站的 URL连接到 websocket 服务器?

例如,网站是 http://websockettest.com/,我想在 Python 中检查用户是通过 websockettest.com 连接的,而不是通过其他网站。

这可能吗?

首先,我猜 "the URL of the website that the client is using" 是指 window.location,一个在浏览器环境中可用的 JavaScript 对象。可能有很多方法可以将其传输到您的后端,但这种方法应该安全吗?我什至不确定 "secure" 在这种情况下意味着什么。您需要在要交付给浏览器的网站中提供类似随机数的东西,并且该网站中的 JS 代码应该发送 window.location 值(网络浏览器栏中的 URL )以及nonce通过HTTPS发送给websocket服务器,后端需要验证nonce。

我猜你需要考虑一下为什么你真的想要实现这个目标。你想禁止外国客户连接到你的服务吗?这是不可能的。服务访问受身份验证限制,即受凭据限制。从理论上讲,任何人都可以实现自己的客户端,并在提供有效凭据的情况下使用您的服务。