使用Phpass和Codeigniter读取文件

unguejic  于 2023-05-27  发布在  PHP
关注(0)|答案(1)|浏览(145)

我在CI控制器上使用Phpass 0.3时出现此错误
留言内容:

is_readable() [function.is-readable]: open_basedir restriction in effect. File(/dev/urandom) is not within the allowed path(s): (/home/:/usr/lib/php:/usr/local/lib/php:/tmp)

文件名:phpass-0.3/PasswordHash.php
谁能告诉我出了什么问题?

7tofc5zh

7tofc5zh1#

open_basedir是在php.ini文件中定义的指令。
它被设置为允许您从PHP脚本访问的最低目录,通常是您的webroot。
尝试访问树下的文件/目录,如/dev/,将被拒绝,您将得到您所拥有的消息。
你将不得不编辑你的php.ini并将open_basedir设置为你的服务器根目录,这通常是一件坏事,因为如果有人设法将恶意代码注入你的脚本,他们将可以访问整个系统。
如果你真的需要的话,执行一个位于你的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限制生效时禁止显示警告。

相关问题