node.js – 在Hapi Joi / Express应用程序中验证和消毒输入之间的区别是什么?

前端之家收集整理的这篇文章主要介绍了node.js – 在Hapi Joi / Express应用程序中验证和消毒输入之间的区别是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用Hapi.JS Joi验证Express应用程序的输入.这是一个样板设置:
const Joi = require('joi');

const schema = Joi.object().keys({
   username: Joi.string().alphanum().min(3).max(30).required(),birthyear: Joi.number().integer().min(1900).max(2013),}).with('username','birthyear');

app.use('/user/:id',function (req,res,next) {

      Joi.validate({ username: 'abc',birthyear: 1994 },schema,function 
      (err,value) { 
        if (err){

        ...

        }

        ...
        next()
        }
      });
   })

问题#1:验证和消毒之间有什么区别?
我应该清理Express API的输入吗?
这是一个移动应用程序,而不是一个网站,所以我试图了解我是否应该验证以及消毒.

问题2
如何使用Joi或其他Express兼容库清理输入?

解决方法

清理用于防止恶意代码

XSS清理的示例< script> alert(1)< / script>
更改为& lt; script& gt; alert(1)& lt; / script& gt;
这样它就会显示在浏览器上而不会执行

验证用于一般检查,例如输入是否是有效的电子邮件,电话号码等

示例邮件验证,
长度> 5,@应该在场.应该出现在@等之后

更新问题2

清理用户的所有输入是一种非常好的做法.要记住一个伟大的规则永远不要信任用户的数据.

原文链接:https://www.f2er.com/nodejs/241084.html

猜你在找的Node.js相关文章