читать файл с Phpass с Codeigniter - PullRequest
0 голосов
/ 22 марта 2012

я получаю эту ошибку при использовании Phpass 0.3 на моем контроллере CI

Сообщение: 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 голосов
/ 22 марта 2012

open_basedir - это директива, определенная в вашем файле php.ini.

Это самый низкий каталог, к которому вам разрешен доступ из скрипта PHP, обычно это ваш webroot.

Попытка получить доступ к файлу / каталогу ниже по дереву, например, в / dev /, будет запрещена, и вы получите сообщение, которое у вас есть.

Вам придется отредактировать ваш php.ini и установить open_basedir в корневой каталог вашего сервера, что, как правило, плохо с точки зрения безопасности, так как если кому-то удастся внедрить вредоносный код в ваш скрипт, он получит доступ ко всей системе. 1007 *

Было бы безопаснее выполнить скрипт (Perl, Python и т. Д.), Который находится в вашей веб-папке, для чтения / dev / urandom, если вам действительно нужно.

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

Версия 1.8 phpass решает эту проблему , подавляя ошибку:

Изменения с версии 1.7: +2 -2 строки:

Префикс is_readable () с "@" для подавления предупреждения, когда open_basedir ограничение действует.

...