geo*_*per 4 javascript xss node.js express socket.io
我在expressjs中使用socket.io 3.我想用快速验证器清理传入的消息.我有这个代码:
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()
});
});
Run Code Online (Sandbox Code Playgroud)
我该怎么用sanitize(data.message).xss
?因为这不起作用.
zia*_*aab 10
在这种情况下,您想要使用validator
而不是express-validator
.首先通过npm安装它:
npm install validator
Run Code Online (Sandbox Code Playgroud)
然后使用它几乎相同的方式:
var sanitize = require('validator').sanitize;
// later on
message = sanitize(data.message).xss()
Run Code Online (Sandbox Code Playgroud)
原因是因为express-validator
当你处理通过expressjs的HTTP请求时使用.在Websockets的情况下,你不是通过expressjs,而只是听同一个端口.因此,express-validator实际上并不存在于Websocket数据事件的上下文中.
归档时间: |
|
查看次数: |
1601 次 |
最近记录: |