当前位置: 首页 > 面试题库 >

保护Socket.io

乐正镜
2023-03-14
问题内容

我正在使用基于Node.js的https服务器,该服务器使用HTTP Basic进行身份验证(这很好,因为数据是通过SSL加密连接发送的)。

现在我想提供一个Socket.io连接

  1. 加密
  2. 仅适用于经过身份验证的用户。

问题是如何做到这一点。我已经发现{ secure: true }在连接到套接字时需要在客户端JavaScript代码中指定,但是如何在服务器端强制套接字连接只能在SSL上运行,并且仅适用于经过身份验证的用户?

我猜想SSL是一件容易的事,因为Socket.io服务器仅绑定到https服务器,所以它应该仅使用SSL运行,并且不可能在(另外)运行的http服务器上运行它,
对?

关于另一件事,我丝毫不了解如何确保只有在用户使用HTTP Basic成功通过身份验证后才能建立套接字连接。

有任何想法吗?


问题答案:

尽管Linus的答案基本上是正确的,但我现在使用session.socket.io以更简单的方式解决了该问题-
基本上可以完成相同的任务,但是编写的自定义代码更少。



 类似资料:
  • 问题内容: JKS(Java密钥存储)文件是否已加密?它们是否为加密密钥提供全面保护,还是我仅需要依赖访问控制? 有没有办法确保密钥受到保护? 我对详细的细节感兴趣,包括算法,密钥管理等。这些可配置的任何一个吗? 问题答案: 它们已加密。 该算法取决于提供者。提供者将根据密码返回密钥/证书。如果需要强安全性,请找到使用强加密的密钥库提供程序。

  • 简介 Laravel 可以轻松地保护应用程序免受 跨站点请求伪造 (CSRF) 攻击,跨站点请求伪造是一种恶意攻击,它凭借已通过身份验证的用户身份来运行未经过授权的命令。 Laravel 会自动为每个活跃用户的会话生成一个 CSRF「令牌」。该令牌用于验证经过身份验证的用户是否是向应用程序发出请求的用户。 无论何时,当您在应用程序中定义HTML表单时,都应该在表单中包含一个隐藏的CSRF标记字段,

  • 启用触摸保护 把 Yubikey-manager 安装在一个绝对路径:【译者注:homebrew 是 macOS 平台的包管理软件】 ❯ brew install libu2f-host libusb swig ykpers ❯ git clone git@github.com:Yubico/Yubikey-manager.git ❯ git submodule update --init --r

  • 问题内容: 我已经使用Socket.IO了几天,这既令人兴奋又令人沮丧。缺少当前的文档/教程使学习变得非常困难。我终于设法创建了一个基本的聊天系统,但是有一个明显的问题。如何保护它? 是什么阻止了恶意用户复制(或编辑)我的代码并连接到我的服务器?我可以从我的PHP脚本中获取用户名并将其提交给Socket.IO,这样我就可以将他们识别为该用户(当然,PHP具有安全性),但是又是什么阻止了某人仅提交未

  • 6xx受保护 600 Series,Repliesregardingconfidentialityandintegrity 631 Integrityprotectedreply. 632 Confidentialityandintegrityprotectedreply. 633 Confidentialityprotectedreply.

  • 我正在编写一个具有独立前端和后端的Web应用程序。前端用React编写,后端是运行Express终结点的node.js服务器。如何确保只有我的前端可以访问API,而不是其他任何人?我的API URL在我的前端客户端代码中公开,所以任何人都可以看到。 我在我的应用编程接口中添加了JWT身份验证,但是我仍然需要一个不受保护的 /loginendpoint来生成JWT令牌,并且为了登录来生成令牌,我必须