【问题标题】:read file with Phpass with Codeigniter使用 Phpass 和 Codeigniter 读取文件
【发布时间】:2012-03-22 07:14:05
【问题描述】:

在我的 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

谁能告诉我问题出在哪里?

【问题讨论】:

标签: codeigniter phpass


【解决方案1】:

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 时抑制警告 限制生效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 2011-12-14
    • 2018-01-30
    • 1970-01-01
    相关资源
    最近更新 更多