【问题标题】:Now.js and secureNow.js 和安全
【发布时间】:2012-07-24 20:02:46
【问题描述】:

我在 Node.js 中使用 now.js 制作了一些聊天应用程序。现在我想到了一些事情。 有两个文件.. server.js 和 client.js,每个人都可以窃取 client.js 文件并在另一个主机上运行它,以获得我的 server.js 工作的好处。如何预防?

这是关于client.js通过域和端口与主机连接的:

window.now = nowInitialize("http://address.com:6564");

如何使其更安全,例如只有来自我的主机(address.com)的客户端(js 文件)才能与我的主机连接。

【问题讨论】:

标签: javascript node.js client nowjs-sockets


【解决方案1】:

如果您担心 other 服务器可以将 your 服务器与客户端代码一起使用: 由于Same Origin Policy,这应该不是问题。只有当您的服务器明确允许时,来自其他主机的客户端才能与其通信。

只需从不同的域名(甚至本地主机)尝试一下:您会发现您的浏览器不允许您发出跨域请求。

(例如,您可以看到this StackOverflow post 是用户无法让 Socket.IO 在不同的主机/帖子组合上工作。)

更新

它会像这样工作:

【讨论】:

  • 啊,是的。正确的。谢谢。如果复制到另一个域,我不清楚如何检查客户端的来源。但实际上浏览器会自动发送它并检查是否允许向网络服务器发出“OPTION”请求。是的,我相信这会奏效......我多次使用 CORS,但仍然觉得依赖客户端浏览器信任有点不安全。但是,在日常生活中,这是一种很好且安全的技术。
  • 我想这会回答这个问题。但我不确定提问者对答案是否满意。 (或完全阅读)。对于浏览器来说,是的,它们都在使事情变得安全(实际上这变得很痛苦)。我刚刚提到了“自编译”浏览器。
【解决方案2】:

您的用户如何通过身份验证加入您的聊天?有没有注册之类的?

也许令牌或安全密钥可以做到这一点?还是带有所述令牌的安全cookie(抱歉......但至少对用户不可见)?如果没有令牌,您就无法访问您的服务?

【讨论】:

    猜你喜欢
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 2011-12-27
    • 2010-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多