前端解决客户端不安全随机数

这篇具有很好参考价值的文章主要介绍了前端解决客户端不安全随机数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前端项目在安全漏洞扫描的时候,爆出了客户端不安全随机数的问题,看了下代码是因为使用了 Math.random() 生成随机数造成的。


百度了一下,math.random()并不是真的随机数,而是伪随机数!

原因

Math.random() 函数是 JavaScript 内置的一个函数,它用于生成一个 0 到 1(包括0,不包括1) 之间的伪随机数。这个函数的实现依赖于浏览器或 JavaScript 引擎,不同的浏览器或引擎可能会使用不同的算法来实现这个函数。
通常情况下,Math.random() 函数会使用一种伪随机数生成器来生成随机数。这种生成器通常会使用一个初始值(称为种子)来生成一系列看起来随机的数字。为了使生成的数字更加不可预测,Math.random() 函数可能会使用外部数据(如当前时间)作为种子值。

由于 Math.random() 函数的实现依赖于浏览器或引擎,因此它产生的随机数质量也会受到影响。一些浏览器可能会使用线性同余生成器算法来实现,而另一些浏览器则可能会使用梅森旋转算法。

也就是说在有些业务场景中,这个方法做不到真正意义上的随机,也就算一个漏洞,接下来就想办法解决掉他。

解决方案

window.crypto.getRandomValues(new Uint8Array(1)) * 1
获取符合密码学要求的安全的随机值
注意此方法生成的是0-255之间(包括)的随机数,所以要想得到0-1的随机数需要乘以比 0.0039215686274509802小的值,当然也可以简写成0.0039,计算办法就是1000/255了。文章来源地址https://www.toymoban.com/news/detail-563953.html

到了这里,关于前端解决客户端不安全随机数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 面试题 -- 客户端安全性和框架设计

    1) 网络数据传输(敏感数据[账号密码消费数据银行卡账号],不能明文发送) 2) 协议的问题(自定义协议) 2) 本地文件存储(游戏的存档) 3) 源代码(混淆) 1) SIP(Session Initiation Protocol),会话发起协议 2) SIP 是建立VOIP连接的IETF标准,IETF是全球互联网最具权威的技

    2024年02月15日
    浏览(43)
  • 解决Fortify漏洞:Insecure Randomness(不安全随机数)

           Fortify漏洞:Insecure Randomness(不安全随机数)指的是代码中使用了不安全或弱随机数生成器导致的安全漏洞。随机数在密码学应用、加密和解密等领域中经常被使用,如果生成的随机数不够随机或不够复杂,则会使得攻击者可以轻易地猜出生成的随机数,从而对系统

    2024年02月10日
    浏览(50)
  • Android安全——客户端安全要点,阿里P8大佬亲自教你

    区别基于Binder实现的BroadcastReceiver,LocalBroadcastManager 是基于Handler实现的,拥有更高的效率与安全性。安全性主要体现在数据仅限于应用内部传输,避免广播被拦截、伪造、篡改的风险。简单了解下用法: 自定义BroadcastReceiver public class MyReceiver extends BroadcastReceiver { @Override pu

    2024年04月24日
    浏览(29)
  • 企业内网终端安全无客户端准入控制技术实践

    终端无代理/无客户端准入控制技术因其良好的用户体验而倍受创新企业的青睐。无代理/无客户端准入控制技术,顾名思义,是一种在网络中对终端实施访问控制的方法,无需依赖特定的客户端软件。 不同于银行、医院等传统行业的终端准入控制需求, 芯片半导体、生物制药

    2024年02月12日
    浏览(42)
  • 探索OpenVPN GUI:安全、易用的开源VPN客户端

    项目地址:https://gitcode.com/OpenVPN/openvpn-gui OpenVPN GUI 是一个直观且易于操作的图形用户界面,用于管理OpenVPN连接。对于那些需要在Windows平台上便捷地设置和控制加密网络连接的人来说,这是一个不可或缺的工具。 OpenVPN GUI是OpenVPN项目的一部分,它提供了一个用户友好的界面,

    2024年04月10日
    浏览(69)
  • Redis 6.0的新特性:多线程、客户端缓存与安全

    2020年5月份,6.0版本。 面向网络处理的多IO线程可以提高网络请求处理的速度,而客户端缓存可以让应用直接在客户端本地读取数据,这两个特性可以提升Redis的性能。 细粒度权限控制让Redis可以按照命令粒度控制不同用户的访问权限,加强了Redis的安全保护。 RESP 3协议则增强

    2024年02月14日
    浏览(35)
  • 39 | Redis 6.0的新特性:多线程、客户端缓存与安全

    这个版本中有很多的新特性。所以,6.0 刚刚推出,就受到了业界的广泛关注。所以,在课程的最后, 这节想来聊聊 Redis 6.0 中的几个关键新特性,分别是面向网络处理的多 IO 线程、客户端缓存、细粒度的权限控制,以及 RESP 3 协议的使用。 其中,面向网络处理的多 IO 线程可

    2024年04月10日
    浏览(42)
  • 【burpsuite安全练兵场-客户端14】点击劫持-5个实验(全)

       博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edusrc高白帽,vulfocus、攻防世界等平台排名100+、高校漏洞证书、cnvd原创漏洞证书,华为云、

    2024年02月02日
    浏览(32)
  • 【burpsuite安全练兵场-客户端16】测试WebSockets安全漏洞-3个实验(全)

         博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edusrc高白帽,vulfocus、攻防世界等平台排名100+、高校漏洞证书、cnvd原创漏洞证书,华为云

    2024年02月02日
    浏览(33)
  • 【burpsuite安全练兵场-客户端15】基于DOM的漏洞-7个实验(全)

       博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edusrc高白帽,vulfocus、攻防世界等平台排名100+、高校漏洞证书、cnvd原创漏洞证书,华为云、

    2024年02月02日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包