node.js - socket.io 消息是否在 https express (node.js) 应用程序上加密?
问题描述
我正在构建一个 Express (Node.js) 应用程序,它一方面使用 socket.io,另一方面使用身份验证系统。
我的问题指出我需要传递敏感信息来识别套接字请求,而且我知道通过发布数据(加密)或 https 标头(也加密),这样做是安全的,但是我不知道socket.io通过https发送的消息是否也被加密了。
这是为了避免 socket.io 通信中的中间人攻击。
我读过 Facebook 使用一种加密方式,而 Telegram 使用另一种加密方式。但也许不需要,我想,我没有用 Wireshark 检查过这方面的任何事情,所以也许有人知道如何处理这个问题,让事情尽可能简单,但安全。
解决方案
它最终对我有用的方式是通过 https 和授权标头作为会话令牌来建立 socket.io 连接:
const socketio = require("socket.io-client");
const client = socketio("/namespace", {
transports: ["websocket"],
secure: true,
rejectUnauthorized: false,
extraHeaders: {
authorization: "Bearer: " + MY_SESSION_TOKEN
}
});
client.connect();
client.on("message", function(data) {
console.log("Received: " + message);
client.disconnect();
});
推荐阅读
- pandas - pandas df 基于多个条件的查找值
- python-3.x - 使用 NaiveBayesClassifier 对文本进行分类
- ruby-on-rails - Capybara + Selenium + Firefox + Rails 无法自动保存文件
- merge - 如何让我的合并函数显示 PROLOG 中可能的列表组合
- javascript - 不同变量的单一数据类型
- javascript - 预期 `onClick` 侦听器是一个函数,而不是 `string` 类型的值
- unity3d - Unity3D GUI.Label 不显示
- java - java中的多部分文件上传检查mime类型
- node.js - 如何在express.js和nginx中获取公共文件夹的所有页面
- javascript - python服务器的路径问题