首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Node和PHP之间共享一些敏感用户数据的最佳策略

在Node和PHP之间共享一些敏感用户数据的最佳策略
EN

Stack Overflow用户
提问于 2018-08-28 03:48:41
回答 1查看 0关注 0票数 0

我正在创建一个基于PHP的网站。它有一个小页面,用户可以在其中进行群聊和互相发送消息。对于页我打开用的帮助下的WebSocket socket.ioexpressjs。我想使用人们注册的用户名。当然,我希望人们不能冒充别人。因此,一旦用户输入消息,它就会被socket.emit编辑到服务器,并从服务器执行以下操作:

socket.on('message', function(msg) {
    io.emit('message', {
        username: username
        message: msg
    });
});

向所有人广播该消息。

我的问题是,如何检索用户名?我现在的解决方案就是这样。我在用户注册时创建了一个独特的128个字符长的user_id,存储在redis中

user_id: username

然后我通过user_idsocket.emit做节点服务器上

username: redisClient.get("user_id")

这是个好主意吗?它安全吗?或者有更好的解决方案来解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2018-08-28 13:08:37

在连接到套接字之前,用户使用用户名登录,根据您的条款验证用户名,并且他们很难预测密钥(某种UUID或Hash)。您可以跟踪服务器端的用户名和密钥(Redis非常棒)。

他们发送的每条消息都使用他们收到的密钥以他们的名义发布。如果密钥无效,则拒绝该消息。

发布消息后,密钥将变为其用户名,并且消息将按用户名推送给所有人。

您可以确定密钥只能在给定的时间段内工作,因此密钥需要不时刷新。

值得注意的是,排队和消息服务器非常适合这种情况,并且具有更强的安全性和身份验证范例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档