使用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
清理用户的所有输入是一种非常好的做法.要记住一个伟大的规则永远不要信任用户的数据.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。