从客户端发送伪造的socket.io请求到服务器(node.js / socket.io)
我正在编写一个Web应用程序,我一直在考虑使用套接字时的安全性。 假设客户端上有一个代码:
$("#send").click(function(e) { var data = { name: "Albert", surname: "Einstein" }; socket.emit("send data", data); }
那么,在服务器上,它以某种方式处理。 问题是,是否有可能只是模拟socket.emit ("send data", data)
,没有点击,并插入我的伪造参数的data
? 如果是的话,怎么样?
对的,这是可能的。 你可以写一个简单的假客户的例子:
fake.js
const server = "127.0.0.1"; // change it to the address of your server const port = 3000; // change it to the port of your server const data = "I am a fake client"; const socket = require("socket.io-client")("http://" + server + ":" + port); socket.on("connect", function () { console.log("connected"); socket.emit("send data", data); console.log("data sent"); });
的package.json
{ "name": "fake", "version": "0.0.1", "private": true, "dependencies": { "socket.io-client": "^2.0.2" } }
运行npm install
然后node fake
,你的任务完成了)