4

私はexpressjs3で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ますか?これは機能しないためです。

4

1 に答える 1

10

この場合、validator代わりにを使用しますexpress-validator。まず、npm からインストールします。

npm install validator

次に、ほぼ同じ方法で使用します。

var sanitize = require('validator').sanitize;

// later on
message = sanitize(data.message).xss()

これは、express-validatorexpressjs を経由した HTTP リクエストを処理するときに使用されるためです。Websockets の場合、expressjs を経由するのではなく、同じポートでリッスンするだけです。そのため、Express-validator は Websocket のデータ イベントのコンテキストでは実際には「存在」しません。

于 2012-06-02T12:41:09.110 に答える