2012-03-22 26 views
0

在使用Phpass 0.3在我的CI控制器讀文件與Phpass與笨

消息我得到這個錯誤:is_readable()[function.is可讀]:在效果open_basedir的限制。文件(/ dev/urandom)不在允許的路徑中:(/ home /:/ usr/lib/php:/ usr/local/lib/php:/ tmp)

Filename:phpass-0.3 /PasswordHash.php

有人能告訴我問題是?

+0

重複的http://stackoverflow.com/posts/8678566:

$output = '/scripts/get_urandom.pl'; // Process output 

通過抑制錯誤版本phpass resolves this issue 1.8 – 2012-03-22 08:26:38

回答

0

open_basedir是在php.ini文件中定義的指令。

它被設置爲允許您從PHP腳本(通常是您的webroot)訪問的最低目錄。

嘗試訪問樹下的文件/目錄(如/ dev /)將會被拒絕,您將收到您擁有的消息。

您將不得不編輯您的php.ini並將open_basedir設置爲您的服務器根目錄,這通常是一種安全明智的壞事,就好像任何人設法將惡意代碼注入到您的腳本中一樣,他們可以訪問整個系統。

如果您確實需要執行位於您的Web文件夾中的腳本(Perl,Python等)以讀取/ dev/urandom會更安全。

Changes since revision 1.7: +2 -2 lines:

Prefixed is_readable() with "@" to suppress warning when open_basedir restriction is in effect.