2016-11-29 46 views
0

我使用ZF3和剛配置新的服務器上的應用程序,並且我收到以下錯誤,當生成令牌CSRFZF3 Zend Math Rand「這個PHP環境不支持安全的隨機數生成。」 PHP 5.6這個Mcrypt和OpenSSL

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

服務器運行的是PHP 28年6月5日,所以我檢查ZF3遷移指南的規定:

「這個消息應該會出現,如果您正在使用的PHP版本小於7在Windows機器上沒有安裝下面的擴展或庫之一:

  • 這個Mcrypt
  • libsodium
  • CAPICOM
  • OpenSSL的」

該服務器有兩個這個Mcrypt和OpenSSL。我也根據需要使用random_compact庫。任何想法我失蹤?或者PHP 7是唯一的解決方案?謝謝。

+1

如果你使用的是random_compat v2,它不會**支持OpenSSL。 –

回答

1

這造成的Zend\Math\Rand::getBytes()使用random_bytes()函數。此功能被添加到PHP在PHP 7.0

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

如果您無法升級您的PHP版本,你可以檢查PHP 5.2這個用戶空間實現5.6

https://github.com/paragonie/random_compat

雖然這圖書館已經被PHP社區的一些安全專家檢查過了,我們總會有機會忽略某些東西。如果您使用的是不受支持的PHP版本,請儘快升級。