将websockets连接映射到数据库中的用户的最佳方法是什么?

时间:2014-02-08 17:26:04

标签: javascript websocket phpwebsocket

我希望将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 个答案:

答案 0 :(得分:1)

您发送的任何“内置”到您的javascript中的内容至少可以被复制和复制。验证用户对服务器端websocket的凭据的唯一方法是PCP websocket服务器需要类似“用户名/密码”的东西 - 然后检查服务器端并仅保留该websocket。 即你必须要求用户输入此信息。