gpt4 book ai didi

javascript - Node 和 Socket.io ...阻止外部客户端连接?

转载 作者:太空宇宙 更新时间:2023-11-04 00:57:51 24 4
gpt4 key购买 nike

您好,我的网络应用程序遇到了一个问题,该应用程序有一个聊天室。通过调查,我认为它与设置 origins 选项有关?但我对此表示怀疑,并希望能得到任何帮助来引导我走向正确的方向。简而言之,我发现不直接访问我网页的用户只需在其客户端脚本中添加 connect(ip:port) 函数即可轻松连接到聊天端口。需要什么安全机制来防止这种访问。另外,我没有使用 Node.js 来实际提供网页服务,而是使用 Laravel。 Node主要实现聊天功能以及与客户端之间传输消息以及将消息存储在内存中。

我希望我的问题足够清楚,如果没有请告诉我

最佳答案

基于浏览器的 webSocket 连接(例如,从浏览器中的 Javascript 发起的连接)可以通过正确的服务器端设置限制为“同源”,以便只有来自您自己站点的网页可以连接。这是因为浏览器会合作并宣布连接的合法来源,以便服务器可以确定传入连接是否合法。

非基于浏览器的 webSocket 连接,例如从另一台服务器或浏览器外部的某些脚本进行的连接不能限制为同一来源(因为没有受信任的代理设置它们的来源)。如果你想控制这些类型的连接,你将需要某种身份验证方案或 API key 或类似的东西,或者放弃对其进行监管并以其他方式控制你需要控制的任何内容(速率限制、用户登录、检测非人员连接等)。

在这方面,webSocket 连接实际上与 ajax 连接没有什么不同。如果网页可以使用它,那么它几乎对整个互联网开放,除非您实现某种身份验证方案。

关于javascript - Node 和 Socket.io ...阻止外部客户端连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28844025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com