我希望将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或以其他方式发送它?
谢谢
答案 0 :(得分:1)
您发送的任何“内置”到您的javascript中的内容至少可以被复制和复制。验证用户对服务器端websocket的凭据的唯一方法是PCP websocket服务器需要类似“用户名/密码”的东西 - 然后检查服务器端并仅保留该websocket。 即你必须要求用户输入此信息。