Websockets - 避免未知连接

时间:2016-03-21 23:09:16

标签: node.js nginx websocket

我的网站X运行一个websocket服务器(socket.io,全部基于node.js),并为客户提供实时数据。

现在,竞争对手Y开始连接我们的websocket服务器并直接从中窃取数据,并将其显示在他们的网站上。

我已经多次尝试阻止他们的IP,但他们只会在几分钟内改变它。 (各种AWS /云托管服务提供商)。我检查了referrer标头,用户代理,接受语言,几乎所有这些都是可欺骗的,他们已经这样做了。

如果有帮助,则通过nginx代理websocket连接。

你会做什么?

3 个答案:

答案 0 :(得分:2)

客户X(网站)或客户Y(竞争对手)毫无意义。它只是一个客户。除非你限制IP(你已经知道它失败了),否则没有可靠的(即不可能被黑客攻击)来区分它们。这是因为客户端Y可以轻松地从头开始构建HTTP请求/ Websocket连接,使其看起来像客户端X.还有更多:走这条路可能是浪费时间和其他资源。最终你会被黑客入侵。问题是:哪家公司有更多的资源来抵御这场斗争? :)

身份验证不会发生太大变化。因为客户Y也可以进行身份​​验证。它只是而不是与您使用用户凭据进行战斗的IP战斗。虽然它可能更容易。你应该试一试。

所以恕我直言所有你最终得到的是持续的监控和反应。如果他们违反法律/协议,那么你应该起诉他们。如果他们不在,那么你可以尝试这种游击战。你最终可能获胜,谁知道。

答案 1 :(得分:0)

您可以验证websocket请求中的Origin标头是否与客户的来源相匹配。但是,我不确定是否可以伪造这个标题。

答案 2 :(得分:0)

身份验证子系统在很大程度上是一个众所周知的解决方案。