要将javascript代码发送到socket.io服务器吗
我想向socket.io服务器发送一个javascript代码,以便服务器向客户端广播并执行该代码 我试着做了一个json变量,像这样,并通过socket.io发送要将javascript代码发送到socket.io服务器吗,javascript,socket.io,Javascript,Socket.io,我想向socket.io服务器发送一个javascript代码,以便服务器向客户端广播并执行该代码 我试着做了一个json变量,像这样,并通过socket.io发送 var sent={ 'code': function(){ console.log('javascript code'); } }; socket.send(sent); 当我在服务器上检查时,收到的消息是{},与发送给其他客户端的消息相同 这
var sent={
'code': function(){
console.log('javascript code');
}
};
socket.send(sent);
当我在服务器上检查时,收到的消息是{}
,与发送给其他客户端的消息相同
这段代码有什么问题,我应该如何发送javascript代码 不要这样做。您将打开所有正在侦听的客户端以防被黑客攻击 也就是说 …您可以遵循pimbdb并将函数作为字符串传入,然后在接收端使用
eval
执行它:
// on the sending client
var sent = {
"code": "function() { /* do something not evil */ }"
}
socket.send(sent);
// on the receiving client
socket.on('message', function(data) {
if (data.code) eval(data.code); // and pray.
});
再说一次,不要。相反,传递一些不可执行的数据,然后这些数据可以以有限数量的非恶意方式进行解释
编辑:抱歉,解释为您在服务器上执行代码。但是客户端仍然倾向于XSS。JSON不能包含函数。您必须将其转换为字符串,然后
eval()
。