gpt4 book ai didi

Javascript |了解回调函数的安全性

转载 作者:行者123 更新时间:2023-11-30 11:23:44 24 4
gpt4 key购买 nike

我需要帮助来理解回调函数的安全性。我的情况是,我有一个客户端和一个服务器端代码,与 socket.io 连接。我的客户正在使用 socket.io 向服务器发送一个对象,如果一切正常,回调必须回答。服务器调用一个方法,该方法返回 true 或 false。如果为真,服务器必须回答。

来自客户的电话:

socket.emit('client.to.server', {id: objID}, () => {
console.log('this is my callback')
})

服务器端 socket.io 事件:

socket.on('client.to.server', (dataObject, callback = null) => {
let result = this.doSomething(dataObject, socket)
if (result === true && (typeof callback === 'function')) callback()
})

所以,我的问题是:这安全吗?我的意思是,客户端正在向服务器发送回调函数,服务器在服务器端调用此函数,如果有人以某种方式操纵此函数怎么办向服务器发送一些污垢?我希望我能解释我的意思。

我知道我可以通过简单地从服务器发送到客户端来替换整个回调。但是什么更好呢?

最佳答案

the client is sending a callback function to the server

你误会了。回调函数根本发送到服务器。流程实际上是这样的:

             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')

套接字是一种消息传递机制。您只能通过它们传递可序列化对象(二进制数据)。

关于Javascript |了解回调函数的安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48835287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com