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 バージョンを使用している場合に表示されます。

  • Mcrypt
  • リブナトリウム
  • カピコン
  • OpenSSL」

サーバーには 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 に答える