bon*_*low 1 javascript node.js socket.io
我需要帮助来理解回调函数的安全性.我的情况是,我有一个客户端和服务器端代码,与socket.io连接.我的客户端正在使用socket.io向服务器发送一个对象,如果一切正常,回调必须回答.服务器调用方法,该方法返回true或false.如果是,则服务器必须回答.
我来自客户的电话:
socket.emit('client.to.server', {id: objID}, () => {
console.log('this is my callback')
})
Run Code Online (Sandbox Code Playgroud)
Serverside socket.io事件:
socket.on('client.to.server', (dataObject, callback = null) => {
let result = this.doSomething(dataObject, socket)
if (result === true && (typeof callback === 'function')) callback()
})
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是:这是安全的吗?我的意思是,客户端正在向服务器发送一个回调函数,服务器调用服务器端的这个函数,如果有人操纵这个函数以某种方式向服务器发送一些污垢怎么办?我希望我能解释一下我的意思.
我知道我可以通过简单地从服务器发送到客户端来替换整个回调. 但更好的是什么?
客户端正在向服务器发送回调函数
你误会了.回调函数根本不会发送到服务器.流程实际上如下所示:
client server
client sends data to server
socket.emit('client.to.server')
pushes to fifo queue[0]
----------------------->
server triggers listener
socket.on('client.to.server')
server sends data to client
pushes to fifo queue[1]
<-----------------------
client triggers callback
() => console.log('this is my callback')
Run Code Online (Sandbox Code Playgroud)
套接字是一种消息传递机制.您只能通过它们传递可序列化的对象(二进制数据).
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |