将 websockets 连接映射到数据库中的用户的最佳方法是啥?
Posted
技术标签:
【中文标题】将 websockets 连接映射到数据库中的用户的最佳方法是啥?【英文标题】:What is the best way to map websockets connection to users in the database?将 websockets 连接映射到数据库中的用户的最佳方法是什么? 【发布时间】:2014-02-08 17:26:04 【问题描述】:我正在寻找与数据库中的用户映射 websockets 连接,目前有这样的东西:
function connectToNotifServer()
var conn = new WebSocket('ws://localhost:8080');
conn.onopen = function(e)
alert("Connection established!");
conn.send(JSON.stringify(user_id: sessionStorage.getItem("user_id")));
;
conn.onmessage = function(e)
alert(e.data);
;
conn.onclose = function(e)
alert("Connection closed!");
;
return conn;
然后我有一个 php websockets 服务器,它保留了与 user_id 的连接的映射。
但是,我认为存在安全漏洞,因为用户可以简单地在 user_id 中注入他想要的任何值并模拟另一个用户。是否有更好的方法来保留此映射,但无需发送 user_id 或以其他方式发送?
谢谢
【问题讨论】:
【参考方案1】:您发送的任何“内置”到您的 javascript 的内容至少可以被复制和复制。验证用户对服务器端 websocket 的凭据的唯一方法是让 PCP websocket 服务器要求类似“用户名/密码”之类的内容 - 然后它会检查服务器端并仅针对该 websocket 保留。 即您必须要求用户输入此信息。
【讨论】:
以上是关于将 websockets 连接映射到数据库中的用户的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章