0

我正在使用 ZF3 并且刚刚在新服务器上配置了一个应用程序,并且在生成 CSRF 令牌时出现以下错误

This PHP environment doesn't support secure random number generation. Please consider upgrading to PHP 7 

服务器正在运行 PHP 5.6.28,所以我查看了 ZF3 迁移指南,其中指出:

“如果您在未安装以下扩展或库之一的 Windows 机器上使用低于 7 的 PHP 版本,则应显示此消息:

  • 加密货币
  • 库钠
  • 资本通信
  • 开放式SSL"

服务器同时具有 Mcrypt 和 OpenSSL。我还根据需要使用 random_compact 库。知道我错过了什么吗?还是 PHP 7 是唯一的解决方案?谢谢。

4

1 回答 1

1

这是由于Zend\Math\Rand::getBytes()使用random_bytes()函数引起的。该功能在 PHP 7.0 中被添加到 PHP

http://php.net/manual/en/function.random-bytes.php

如果您无法升级您的 PHP 版本,您可以检查 PHP 5.2 到 5.6 的这个用户区实现

https://github.com/paragonie/random_compat

尽管 PHP 社区中的一些安全专家已经检查过这个库,但我们总是有可能忽略一些东西。如果您使用的是不受支持的 PHP 版本,请尽快升级。

于 2016-12-03T14:31:59.573 回答