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