加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

怎样防止Node.js中的不安详跳转

发布时间:2018-10-20 10:10:28 所属栏目:业界 来源:lucywang
导读:什么是不安详的重定向? 对付任何web开拓职员来说,不安详或未履历证的重定向都是重要的安详思量身分。Express为重定向提供了当地支持,使它们易于实现和行使。然而,Express将执行输入验证的事变留给了开拓职员。Express是一种保持最低水平手限的机动Node.

在某些环境下,将每个组合列入白名单是不切现实的,不外有些安详平台如故但愿重定向用户并将其保存在域内某些界线内。当外部提供的值遵循特定模式(譬喻16个字符的字母数字字符串)时,最好这样做。字母数字字符串是抱负的,由于它们不包括任何也许引入其他进攻的非凡字符,譬喻目次/路径遍历(依靠于诸如...和向后/向前斜杠之类的字符)。

譬喻,安详平台也许但愿在用户登录后将其重定向回电子商务网站上的特定产物。因为电子商务网站对每种产物都有独一的字母数字值,因此安详平台可以通过始终按照RegEx白名单验证外部输入来实现安详重定向。在本文所讲的样本在,研究者用的是productId变量。

  1. //Configure your whitelist 
  2. var baseHostname = "https://example.com"; 
  3.  
  4. app.get('/login', function (req, res, next) { 
  5.     productId = (req.query.productId || ''); 
  6.     whitelistRegEx = /^[a-zA-Z0-9]{16}$/; 
  7.  
  8.     if(productId) { 
  9.          
  10.         //Validate the productId is alphanumeric and exactly 16 characters 
  11.         if(whitelistRegEx.test(productId)) { 
  12.  
  13.             res.redirect(encodeURI(baseHostname + '/item/' + productId)); 
  14.         }else{ 
  15.  
  16.             //The productId did not meet the RegEx whitelist, so return an error 
  17.             res.send('Invalid product ID'); 
  18.         } 
  19.     }else{ 
  20.      
  21.         //No productId was provided, so redirect to home page 
  22.         res.redirect('/'); 
  23.     } 
  24. }); 

最后,安详平台发出告诫,告诫用户他们正在被自动重定向是值得重视的。假如安详平台故意将用户重定向到域外,则也许必要在流程中建设一此中间页面,该页面会发出如下告诫,并包括用户要重定向到的URL。

怎样防止Node.js中的不安详跳转

注:本文是以Hailstone为例举办讲授的,Hailstone是一个应用措施安详平台,它有查找代码中的裂痕成果。

【编辑保举】

  1. 收集安详威胁信息名目类型正式宣布
  2. 企业被“打单”遭殃,企业数据安详路在何方
  3. 5G类型安详性和协议裂痕说明(上篇)
  4. 走进几维安详,听CTO刘柏江报告他们想做的事儿
  5. 【安详预警】大量恫吓打单垃圾邮件来袭
【责任编辑:赵宁宁 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读