【问题标题】:Are socket.io messages encrypted on https express (node.js) applications?socket.io 消息是否在 https express (node.js) 应用程序上加密?
【发布时间】:2020-09-07 11:02:42
【问题描述】:

我正在构建一个 Express (Node.js) 应用程序,它一方面使用 socket.io,另一方面使用身份验证系统。

我的问题指出我需要传递敏感信息来识别套接字请求,而且我知道通过发布数据(加密)或 https 标头(也加密),它是安全的这样做,但我不知道socket.io通过https发送的消息是否也被加密。

这是为了避免 socket.io 通信中的中间人攻击。

我读到 Facebook 使用一种加密方式,而 Telegram 使用另一种加密方式。但也许不需要,我想,我没有用 Wireshark 检查过这方面的任何事情,所以也许有人知道如何处理这个问题,让事情尽可能简单,但安全。

【问题讨论】:

  • 我不确定你在做什么(你没有给出代码),但是通过 https 发送的任何内容都是加密的。
  • 谢谢您,先生。我最后添加了我是如何做到的。

标签: node.js express encryption https socket.io


【解决方案1】:

我最终通过 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();
});

【讨论】:

    猜你喜欢
    • 2016-07-19
    • 2016-09-04
    • 2015-05-11
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多