【问题标题】:Socket.io sanitize incoming data (xss)Socket.io 清理传入数据 (xss)
【发布时间】:2012-06-02 12:18:45
【问题描述】:

我在 expressjs 3 中使用 socket.io。我想用 express-validator 清理传入的消息。我有这个代码:

var expressValidator = require('express-validator')
, sanitize = require('express-validator').sanitize;

socket.on('chat', function (data) {
    io.sockets.in('test').emit('chat', {
            user: sh.session.user,
            message: data.message,
            time: new Date()
    });
});

我如何使用sanitize(data.message).xss?因为这不起作用。

【问题讨论】:

    标签: javascript node.js express xss socket.io


    【解决方案1】:

    在这种情况下,您想使用validator 而不是express-validator。首先通过 npm 安装它:

    npm install validator
    

    然后以几乎相同的方式使用它:

    var sanitize = require('validator').sanitize;
    
    // later on
    message = sanitize(data.message).xss()
    

    这是因为express-validator 用于处理通过 expressjs 的 HTTP 请求。对于 Websockets,您不会通过 expressjs,而只是在与它相同的端口上侦听。所以 express-validator 实际上并不“存在”在 Websocket 的数据事件的上下文中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-07
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-20
      • 1970-01-01
      • 2022-01-07
      相关资源
      最近更新 更多