解决 PHP 中不安全的随机数生成问题

2024-01-29

我们正在对各种 Drupal 模块运行 Fortify 扫描,常见的严重/高结果是“不安全的随机性”。它指出 rand() 函数无法承受加密攻击。

我的问题是——这是一个严重的问题吗?如何在 PHP 中修复它?

谢谢。


这个问题的答案完全取决于您使用 rand() 调用的结果来做什么。

如果您将它们用于加密密钥之类的用途,其中该工具的安全性取决于随机数的随机性,那么,是的,这是一个严重的问题。在这种情况下,您不应调用 rand() 或 mt_rand(),因为两者都不会产生足够随机的“随机”数字以供加密使用。您确实想利用正在运行的平台的底层伪随机数生成器 (PRNG) - Unix/Linux 系统上的 /dev/urandom 或 Windows 系统上的 crypto-api - 因为这些已经被广泛研究并产生适合在密码系统中使用的真正随机数。 PHP 并没有让访问这些随机源变得那么容易,但是确实存在如何做到这一点的示例(就像这样 ->http://www.php.net/manual/en/function.mt-rand.php#83655 http://www.php.net/manual/en/function.mt-rand.php#83655).

如果您将随机数用于其他用途,例如随机化首先向用户呈现哪个选项,或类似的操作,其中生成的数字不以任何加密方式使用,那么您may能够摆脱使用 rand() 或 mt_rand() 的影响。但是,如果您的应用程序/模块依赖良好的随机数来保证安全性,那么您确实需要利用操作系统源,如上所述。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决 PHP 中不安全的随机数生成问题 的相关文章

  • 从 freshdesk api 获取所有用户时获取curl_error(): 2 不是有效的 cURL 句柄资源

    我正在创建自己的系统来管理通过其 API 来自 freshdesk com 的所有票证 我正在发出curl 请求以从freshdesk com 获取数据 通过获取与股票相关的数据 它的工作正常 但是当我通过curl请求请求所有用户时 它会给
  • AWS S3从本地主机批量上传php错误

    我在尝试着批次 散装从本地主机 xampp 上传到我的S3 bucket 它似乎适用于大约 6 个项目 然后我收到一条错误消息 cURL 错误说Failed sending network data from http curl haxx
  • 获取给定日期时间集的每月第一个星期一

    我需要什么 我有一个特定的日期时间列表 我想获取每个日期时间的第一个星期一 例如 假设给定的日期时间是 2013 07 05 2013 08 05 2013 09 13 etc 我想获得所有这些日期时间的第一个星期一 以便输出结果 2013
  • Codeigniter PHP - 在锚点加载视图

    我在一个长页面的底部有一个表单 如果用户填写了表单但它不验证页面是否以典型的 codeigniter 方式重新加载 this gt load gt view template data 然而 由于表单位于页面底部 我需要将页面加载到那里 就
  • 将 PHP 中的 openssl AES 转换为 Python AES

    我有一个 php 文件 如下所示 encryption encoded key c7e1wJFz PBwQix80D1MbIwwOmOceZOzFGoidzDkF5g function my encrypt data key encrypt
  • 使用 PHP 更新 XML 节点

    我有一个 XML 文件 test xml
  • Laravel 读写连接不同步

    我在 Laravel 5 2 应用程序中使用读写 MySQL 连接设置 mysql gt write gt host gt env DB HOST WRITE localhost read gt host gt env DB HOST RE
  • CryptoJS 使用密码加密 AES,但 PHP 解密需要密钥

    我在用CryptoJS https code google com p crypto js AES加密字符串 function doHash msg msg String msg var passphrase aggourakia var
  • php隐藏所有错误[重复]

    这个问题在这里已经有答案了 隐藏的最佳做法是什么allPHP 错误 因为我不想向用户显示错误 我尝试过使用 htacess通过输入代码php flag display errors off在那里 但它返回给我一个500 error 还有其他
  • 通过 post 使用 php 发送 XML

    我知道有很多类似的问题 但我尝试过摆弄所有的解决方案 但似乎无法使其发挥作用 我正在尝试将 xml 直接发布到 Web 服务并获得响应 从技术上讲 我正在尝试连接到freightquote com 您可以在右上角找到该文档this http
  • 为什么 asort 适用于多维数组?

    抱歉 如果这是一个非常基本的问题 我无意中发现asort http php net manual en function asort php似乎适用于多维数组 示例 PHP animals array 1 gt array name gt
  • 将 Cloudinary 与 spatie/media-library Laravel 包一起使用

    有人使用 Laravel 包 spatie media library 和 Cloudinary 吗 我认为用 Flysystem 来实现它是微不足道的 我实际上使用 Cloudinary 作为带有 silvanite nova field
  • 如何绕过Access-Control-Allow-Origin?

    我正在一个平台上对我自己的服务器进行ajax调用 他们设置了阻止这些ajax调用的平台 但我需要它从我的服务器获取数据以显示从我的服务器数据库检索到的数据 我的 ajax 脚本正在运行 它可以将数据发送到我的服务器的 php 脚本以允许其处
  • PHP 中的异或加密

    我是 Xor 加密的新手 并且在使用以下代码时遇到了一些问题 function xor this string Let s define our key here key magic key Our plaintext ciphertext
  • 从检查元素隐藏 ''

    我有这个 HTML 和 PHP 联系表
  • 2 使用我的代码在数组中查询

    我使用滑块来显示我的 WordPress 精选文章 它选择一个自定义类别并返回一定数量的帖子 如何将显示的第一篇帖子设为自定义帖子 我可以直接在滑块代码中添加特定帖子的 ID吗使该帖子首先出现 然后是原始查询返回的其他内容 例如 在页面上
  • PHP-如何根据条件配对数组中的项目

    如何将数组中的项目配对 假设我有一个数组Fighters 我想根据他们的情况将他们配对Weights 体重最接近的拳手应作为配对最佳匹配 但如果他们是在同一个团队中 他们不应该配对 团队 1 战斗机A体重为60 战斗机B体重为65 2队 战
  • sqlite3和pdo_sqlite有什么区别

    我正在将我的 Web 应用程序从 MySQL 迁移到 SQLite 数据库 我发现有两个 PHP 扩展用于与 sqlite 通信 php sqlite3 dll and php pdo sqlite dll 什么扩展比较好 或者另一个问题
  • 使用 Swift 邮件程序发送邮件时出现错误 501

  • 如何统计订单总价?

    我有这些表 Orders id status user id address id 1 await 1 1 products id name price quantity 1 test1 100 5 2 test2 50 5 order p

随机推荐

  • CIColorControls 和 UISlider w/Swift 4 [重复]

    这个问题在这里已经有答案了 我试图让滑块影响 UIImageView 的亮度 我的出路和行动 IBOutlet weak var previewImage UIImageView IBAction func adjustBrightness
  • AngularJs 嵌套 ng-repeat 过滤器

    我有一个要过滤的分组嵌套对象 该过滤器仅适用于第二组
  • 如何查找sql​​ server中一个表的所有依赖关系

    我有一个数据库 其中有表 过程 视图和触发器的列表 但我想要一个查询来获取表的所有依赖项 包括引用父表的子表 我们可以使用以下方法来检查依赖关系 方法一 使用sp depends sp depends dbo First GO 方法二 使用
  • SQL Server 自动标识字段的最大大小

    SQL Server 标识字段 int 的最大大小是多少 我每天会在几个表中多次删除和插入数百条记录 我很好奇这会对自动身份字段产生什么影响 我可以每天晚上左右运行一项作业 并根据需要截断这些数据 我很感激你的想法 谢谢 INT 最多可达
  • 圆形 div 中的文本溢出

    我有一个圆形 div 但我的文本不在其中 默认情况下它略高于我无法查明原因 我在顶部添加了边距以将其强制放在 div 内 但我确信有更好的方法来执行此操作 因为我的方法仅适用于一定数量的文本 div description display
  • 如何在C/C++中存储和调用已编译的函数?

    对于非常低级别的优化目的 如果我可以将编译后的函数直接存储在变量中 这对我很有用 not指向函数的指针 也就是说 如果我有一个函数 foo 我想创建一个足够大的 char 缓冲区来容纳为 foo 生成的机器指令 然后能够通过某种方式告诉 C
  • 将值从 for 循环转换为 json 格式

    下面是一个 for 循环的片段 我在其中对 txt 文件名进行排序 然后我尝试将结果保存在 json 格式文件中 但是 由于最后一个原因 它会导致无效的 json 格式 插入obj 我如何将 for 循环中的值转换为 json 格式 scr
  • PHP MySQLi OOP 中“->”和“::”的区别

    谁能说出两者之间的区别mysqli gt commit and mysqli commit 标头在这一页 http php net manual en mysqli commit php is mysqli commit 但在示例中他们使用
  • JSTL 访问哈希图中的整数/长键

    我在 JSTL 中使用 EL 时遇到一些问题 无法按照我的意愿访问 Java Hash Map 我知道在 EL 中 如果 Integer 被作为 Long 访问 则该键是关键 我尝试在 JSTL 中访问以下哈希映射定义 Map
  • Mocha 测试的伊斯坦布尔代码覆盖率

    我正在努力让伊斯坦布尔运转起来 在伊斯坦布尔跑步结束时 我不断收到此消息 未收集覆盖范围信息 退出而不写入覆盖范围 信息 我已经尝试了网上能找到的所有方法 如您所见 scripts start node bin start js test
  • 以特定格式将“词典的词典”写入 .csv 文件

    我正在从多个 csv 文件生成一个字典 它看起来像这样 示例 dtDict AV IM 1 13991730 6 1 2014 0 10 0 96 6 1 2014 0 15 0 92 6 1 2014 0 20 0 97 AV IM 1
  • Admob 显示测试广告,但不显示真实广告

    我正在使用 admob 来展示 Android 广告 测试广告运行良好 但未显示真正的广告 另外 我对真正的插页式广告没有任何问题 因为它们工作得很好 只是真正的横幅广告没有出现 我的java代码是 private Interstitial
  • 在传递给模拟函数的参数上调用成员函数的最简单方法是什么?

    给定接口 class IFooable virtual void Fooable 0 class IFoo virtual void Foo IFooable pFooable 0 和古尔模拟模拟 class TMockFoo public
  • IIS7:像 IIS6 一样设置集成 Windows 身份验证

    这适用于不属于 AD 域的 Windows Server 2008 上的 IIS 7 我想用密码保护一个网站 人们必须输入用户名 密码 例如 Windows 帐户 才能查看该网站 然后 网站将使用自己的身份验证方法 表单 来处理用户帐户并决
  • Ruby 中数组 * 字符串是什么意思?

    我正在查看一些 Rails 源代码并发现 File vendor rails activesupport lib active support vendor builder 2 1 2 builder css rb line 129 129
  • 生成最小和最大日期之间的日期范围 Athena presto SQL 序列错误

    我正在尝试使用 Presto SQL Athena 生成一系列日期unnest and sequence类似的东西generate series在 postgres 中 我的桌子看起来像 job name run date A 2021 0
  • Spring-Data-Elastic Search 和 Spring-Data-Cassandra 存在 MapId 问题

    我正在尝试让 Spring Data Cassandra 和 Spring Data Elasticsearch 一起工作 以下是我面临的问题 org springframework beans BeanInstantiationExcep
  • 使用 Java JSch 进行 SFTP 文件传输

    这是我的代码 它在远程服务器上检索文件的内容并显示为输出 package sshexample import com jcraft jsch import java io public class SSHexample public sta
  • Collada 与 OpenGL ES 的集成程度如何

    在我阅读有关 Collada 文件格式的所有内容时 我都看到一些关于 Collada 如何集成到 OpenGL ES 的提示 或其他方式 它到底有多集成 我怀疑不是 但是有直接使用 Collada 文件的函数吗 甚至是 Collada 文件
  • 解决 PHP 中不安全的随机数生成问题

    我们正在对各种 Drupal 模块运行 Fortify 扫描 常见的严重 高结果是 不安全的随机性 它指出 rand 函数无法承受加密攻击 我的问题是 这是一个严重的问题吗 如何在 PHP 中修复它 谢谢 这个问题的答案完全取决于您使用 r