服务器 A 是标准的 apache/php Web 服务器。它将 HTML/Javascript 传递到浏览器,浏览器使用 websocket 连接到服务器 B(node.js 服务器)。
看起来像这样:服务器A(http请求->)浏览器(websockets->)服务器B
有没有办法在服务器 B 上验证服务器 A 是否是请求的来源?
我的理解是HTTP引用很容易被欺骗。我想过让 PHP 获取一次性使用 token 以允许 javascript 代码证明其身份,但破解它就像加载禁用 javascript 的真实页面并提取 token 一样简单。
这确实不是我的专业领域,所以我很感激任何建议 - 谢谢! :)
最佳答案
好吧,我从来没有用 JS 这样做过,但是它与中央身份验证系统配合得很好:
1)用户连接到服务器A并进行身份验证(例如密码)
2) 服务器 A 然后向服务器 B 发送一条消息,表示“用户 X 在时间 Z 从地址 Y 连接”
3) 服务器 B 将此信息保存到数据库中,并向服务器 A 返回唯一的代码
4) 服务器A依次将其返回给用户。
5) 然后,用户在请求中将此唯一代码及其用户名传递给服务器 B。
6) 服务器 B 检查该用户是否在过去 X 分钟内从该地址与服务器 A 连接。
关于javascript - 我的 javascript/html 和 node.js 逻辑位于不同的服务器上 - 它们可以安全地交互吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19017567/