bug:进行安全漏洞扫描被报Insecure Randomness:标准的伪随机数值生成器不能抵挡各种加密攻击。

背景:

使用了Math.random()被安全漏洞扫描出high等级的漏洞。尽管我用了Math.random()后,再用了一些手段处理这个随机数,还是被安全漏洞报警。

由于 Math.random() 是统计学的 PRNG,攻击者很容易猜到其生成的字符串。推荐使用密码学的PRNG。
在 JavaScript 中,常规的建议是使用 Mozilla API 中的 window.crypto.random() 函数。

解决方法:

  1. 先检查打印一下window.crypto有没有值,有就不用走第一二步,可以直接走第三步

  2. 引入第三方库:crypto-js

    npm install crypto-js
    
  3. 在 main.js 全局注册 cryptojs

    import crypto from 'crypto-js'
    Vue.use(crypto)
    
  4. 使用,在需要使用的地方插入代码,
    将这串代码Math.random()替代成这串crypto.getRandomValues(randomValuesArray)[0]

    const randomValuesArray = new Uint32Array(1)
    const randomValue= crypto.getRandomValues(randomValuesArray)[0]
    

顺嘴一提:
fortify扫描的漏洞 —— Key Management: Empty Encryption Key
把报的关键字【key】换一个参数名即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值