gpt4 book ai didi

node.js - socket.io:将敏感数据存储在握手对象中是否安全?

转载 作者:搜寻专家 更新时间:2023-10-31 22:35:44 25 4
gpt4 key购买 nike

我想在握手对象中保存一些用户敏感数据。服务器端代码如下所示:

io.configure(function (){
io.set('authorization', function (handshakeData, callback) {

var objAuthorized = IsUserAuthorized(handshakeData);

if (objAuthorized.authorized) {
handshakeData.password = objAuthorized.password; // Store sensitive data inside handshake
handshakeData.email = objAuthorized.email; // Store sensitive data inside handshake
callback(null, true);
} else {
callback(null, false);
}

});
});

io.sockets.on('connection', function (socket) {
socket.on('do something', function() {
if DoSomething(socket.handshake.password, socket.handshake.email) {
// do something here
}
});
});

以上例子取自https://github.com/LearnBoost/socket.io/wiki/Authorizing .

在握手对象中保存敏感数据是否安全?客户端能否在其套接字连接的生命周期内以某种方式修改此数据?

谢谢

最佳答案

据了解,这没有任何问题,用户无法从 socket.io 中的授权中获得特权..但这不是一个好方法或好方法练习这样做。

大多数开发人员不会这样做,他们在应用程序的其他部分处理身份验证/授权,并留给 socket.io 上的 cookie 和 session 验证。这也将消除 socket.io 服务器的开销。


已更新

以下示例展示了如何使用 session express/socket.io

一些有用的链接:

请注意,您必须在通用登录表单中对用户进行身份验证,将凭据与数据库进行匹配,如果您以前使用过 PHP 和用户身份验证,则不会有问题。在匹配用户凭据后,您设置 sessionID 和任何其他数据,然后剩下的由 express 处理。

关于node.js - socket.io:将敏感数据存储在握手对象中是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21402476/

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