使用Codeigniter使用Phpass读取文件

时间:2012-03-22 07:14:05

标签: codeigniter phpass

我在CI控制器上使用Phpass 0.3时出现此错误

消息:is_readable()[function.is-readable]:open_basedir限制生效。文件(/ dev / urandom)不在允许的路径中:(/ home /:/ usr / lib / php:/ usr / local / lib / php:/ tmp)

文件名:phpass-0.3 / PasswordHash.php

有人能告诉我问题是什么吗?

1 个答案:

答案 0 :(得分:0)

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

它被设置为允许您从PHP脚本(通常是您的webroot)访问的最低目录。

尝试访问树下的文件/目录,例如在/ dev /中,然后将被禁止,您将收到消息。

你必须编辑你的php.ini并将open_basedir设置为你的服务器根目录,这在安全方面通常是一件坏事,好像有人设法将恶意代码注入你的脚本,他们可以访问整个系统。 / p>

如果你真的需要,执行你的web文件夹中的脚本(Perl,Python等)来读取/ dev / urandom会更安全。

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

phpass resolves this issue版本1.8通过抑制错误:

  

自修订版1.7以来的变化:+2 -2行:

     

使用“@”作为前缀的is_readable()以在open_basedir时禁止警告   限制有效。