Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – Sequelize model.build(req.body)是否可以安全注射?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是Sequelize(node.js ORM)的新手,想知道以下代码是否安全:

var models = require('../models');
var router = require('express').Router();

router.post('/',function(req,res,next){
  models.Account
    .create(req.body)       // <-- THIS IS what MY QUESTION IS ABOUT,IS THIS SAFE?
    .then(function(result){
      res.status(200)
        .send(result)
        .end();
    }).catch(next);
});

如果你使用它,这在某种程度上是不安全的吗?
另一种解决方案是:

var models = require('../models');
var router = require('express').Router();

router.post('/',next){
  models.Account
    .create({
      username:    req.body.username,// <-- THIS IS MORE VERBOSE BUT PROBABLY SAFER?
      accountname: req.body.accountname,level:       req.body.level
    })
    .then(function(result){
      res.status(200)
        .send(result)
        .end();
    }).catch(next);
});

所以基本上我的问题是:使用完整的请求体作为model.create()函数(以及model.set()和model.build())的输入是否安全?

解决方法

作为一般规则,在将数据传递给任何持久性技术之前,您应该验证输入以确定它对您的域是否安全.因此,即使从sql注入攻击的角度来看这是安全的,我仍然建议在@L_902_5@models.Account.create之前使用额外的验证步骤进行第二种方式,以便将已知值传递给ORM,而不是http请求正文中的任何内容(可能是任何内容,而不仅仅是页面上的内容)

大佬总结

以上是大佬教程为你收集整理的node.js – Sequelize model.build(req.body)是否可以安全注射?全部内容,希望文章能够帮你解决node.js – Sequelize model.build(req.body)是否可以安全注射?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。