url 地址中的敏感信息脱敏处理

文章描述了一个JavaScript函数,当URL跳转时,系统会自动处理查询字符串中的参数。非clz键的值会被加密,而encrypt键用于标记是否已加密。解密操作仅在存在相应标记时执行。
摘要由CSDN通过智能技术生成

url 跳转时,系统自动加密解密处理,适用于调用方不适合加密处理的情况

// 定义一个名为encodeURIUrlParams的函数  
encodeURIUrlParams() {  
  // 创建一个URLSearchParams对象,该对象用于处理URL的查询字符串部分  
  const urlParams = new URLSearchParams(window.location.search)  
  // 创建一个空对象用于存储解码后的参数  
  const params = {}  
  
  // 使用Array.from方法将URLSearchParams对象转化为数组,并使用map方法遍历数组  
  Array.from(urlParams).map(arr => {  
    // 获取当前参数的键和值  
    const [key, value] = arr  
    // 将参数的键和值存储到params对象中  
    params[key] = value  
    // 如果参数的键不是'clz',则对值进行加密,并将加密后的值重新设置回URLSearchParams对象中  
    if (key !== 'clz') {  
      urlParams.set(key, this.encrypt(value, 3))  
    }  
  })  
  
  // 如果params对象中包含'encrypt'键,则对除'clz'外的所有参数值进行解密,并将解密后的值重新设置回params对象中  
  if (Object.keys(params).includes('encrypt')) {  
    Object.keys(params).map(key => {  
      if (key !== 'clz') params[key] = this.decrypt(params[key], 3)  
    })  
    // 返回解密后的params对象  
    return params  
  } else {  
    // 如果params对象中不包含'encrypt'键,则向params对象中添加'encrypt'键,并将其值设置为'1'  
    params.encrypt = '1'  
    // 向URLSearchParams对象中添加'encrypt'键,并将其值设置为'1'  
    urlParams.set('encrypt', '1')  
  }  
  // 创建一个新的URL对象,该对象的查询字符串部分由URLSearchParams对象的toString方法生成  
  const newUrl = new URL(window.location);  
  newUrl.search = urlParams.toString();  
  // 使用history.pushState方法将新的URL添加到浏览器历史记录中,并更新当前页面的URL为新的URL  
  history.pushState({}, '', newUrl);  
  // 返回解密后的params对象  
  return params  
}
  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值