大佬教程收集整理的这篇文章主要介绍了node.js – Node / Express – 客户端/服务器之间安全通信的良好方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想保护通信客户端/服务器,但我不知道如何考虑这个过程.
我看到很多关于护照或JWT的教程,但这对于用户身份验证很有用.
我不知道是否根据时间(例如)为每个请求创建一个令牌是一种好方法,或者它对于一个Web应用来说太费劲了.
但我的目标是保护数据,因为即使API是私有的,您也可以轻松找到路线,并尝试弄清楚如何伪造请求与Postman或别的东西来废弃数据.
如果API KEY受到损害,那么您可以轻松更新env变量,并且您再次表现良好.
现在,如果没有httpS连接,这个解决方案将毫无意义,因为任何人都可以嗅探流量并查看API KEY.在这种情况下,必须使用加密连接.
几乎所有拥有公共API的公司都使用这种方法:Twitter,Facebook,Twilio,Google等.
例如谷歌有一个额外的步骤,他们会给你一个将过期的令牌,但这将是你的情况下的过度杀戮:至少在开始时.
以下代码是我执行API KEY检查的示例
app.use(function(req,res,next) { // // 1. check if the APIKey is present // if(!req.headers.authorization) { return res.status(400).json( { message: "Missing APIKey.",description: "Unable to find the APIKey" } ); } // // 2. Remove Basic from the beginning of the String // let noBasic = req.headers.authorization.replace('Basic ',''); // // 3. Convert from base64 to String // let b64toString = new Buffer(noBasic,'base64').toString("utf8"); // // 4. Remove the colon from the end of the String // let userAPIKey = b64toString.replace(':',''); // // 5. check if the APIKey matches the one on the server side. // if(userAPIKey != process.env.API_KEY) { return res.status(400).json( { message: "APIKey don't match",description: "Make sure what you are sending is what is in your server." } ); } // // -> Go to the next stage // next() });
以上是大佬教程为你收集整理的node.js – Node / Express – 客户端/服务器之间安全通信的良好方法全部内容,希望文章能够帮你解决node.js – Node / Express – 客户端/服务器之间安全通信的良好方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。