将伪造的socket.io请求从客户端发送到服务器(node.js / socket.io)

时间:2017-08-17 11:41:45

标签: javascript 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?如果是,怎么样?

1 个答案:

答案 0 :(得分:1)

是的,有可能。您可以编写一个简单的假客户端示例:

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,您的任务就完成了;)