express框架会过滤数据库注入或者xss攻击么

我直接把前台传来的json数据(req.body)存入mongod数据库里面了,没有对数据进行恼人的过滤,代码是这样写的

app.post('/post', urlencodedParser, function (req, res) {    
            db.myinsert(req.body, function (err,result) {
               if(err)  { console.log('Error:'+ err);  return; } 
             console.log(req.body)
            })
        console.log(req.body);
}) 

请教,express框架对req.body进行过滤了没,这样写安全么

阅读 4.7k
2 个回答

数据库注入

express好像没有自带数据库组建吧?你应该看看你用的db是哪个库,里面有没有对SQL的参数进行转义和过滤。

一般不手工拼SQL的话,一个合格的DB库应该是能避免SQL注入的。

xss攻击

为了避免xss攻击,输入的过滤当然也是一道关,但是更重要的是输出的时候不要把(潜在的)用户输入直接当作HTML片段进行输出,而应该转义后再输出。

如果非要用户输入富文本(HTML片段之类的),则应该用比较安全的方式,比如使用UBB代码来代替HTML代码。而用户非要输入HTML代码的时候,则应该要通过htmlpurifier这样的输入过滤工具过滤掉潜在的xss代码。

express框架本事是不会转义html代码的,所以可以使用validator第三方组件对接收到的数据进行转义,至于防sql注入,可以使用sequelize orm组件来操作数据库,预绑定参数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题