背景:
使用了Math.random()
被安全漏洞扫描出high等级的漏洞。尽管我用了Math.random()
后,再用了一些手段处理这个随机数,还是被安全漏洞报警。
由于
Math.random()
是统计学的 PRNG,攻击者很容易猜到其生成的字符串。推荐使用密码学的PRNG。
在 JavaScript 中,常规的建议是使用 Mozilla API 中的window.crypto.random()
函数。
解决方法:
-
先检查打印一下window.crypto有没有值,有就不用走第一二步,可以直接走第三步
-
引入第三方库:crypto-js
npm install crypto-js
-
在 main.js 全局注册 cryptojs
import crypto from ‘crypto-js’
Vue.use(crypto) -
使用,在需要使用的地方插入代码,
将这串代码Math.random()
替代成这串crypto.getRandomValues(randomValuesArray)[0]
const randomValuesArray = new Uint32Array(1)
const randomValue= crypto.getRandomValues(randomValuesArray)[0]
顺嘴一提:
fortify扫描的漏洞 —— Key Management: Empty Encryption Key
把报的关键字【key】换一个参数名即可。
学习计划安排
我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣~
这里我整合并且整理成了一份【282G】的网络安全从零基础入门到进阶资料包,需要的小伙伴可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!
如果你对网络安全入门感兴趣,那么你需要的话可以
点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
①网络安全学习路线
②上百份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥HW护网行动经验总结
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析
![](https://i-blog.csdnimg.cn/blog_migrate/873282b327c8f07e5b9958d5344e495b.jpeg)