Показать статистику
0 голосов
от (2.4тыс. баллов)

Имеется система CentOS 7.4 с апачем версии 2.4.6 и PHP 5.4. В конфигурации /etc/php.ini имеется следующее:

open_basedir =.:/tmp/:/var/lib/php/session/
session.save_path = "/var/lib/php/session"
session.entropy_length = 0
;session.entropy_file = /dev/urandom

Почитав документацию на PHP, вычитал следующее:

В версии PHP 5.4.0 session.entropy_file по умолчанию перенаправляется на /dev/urandom или /dev/arandom (если таковые имеются). В PHP 5.3.0 эта директрива по умолчанию оставлено пустой.

Возник вопрос. Нужно ли мне добавить /dev/urandom в open_basdir? Например, так:

open_basedir =.:/tmp/:/var/lib/php/session/:/dev/urandom/
491 просмотров 1 ответов

1 Ответ

0 голосов
от (17.4тыс. баллов)
Я думаю что вам ничего не нужно добавлять. Только если ваш PHP код для каких то целей читает из /dev/urandom (например, через функции вроде include() или fopen()).
Если не ошибаюсь, ограничение open_basedir действует только на те функции, которые принимают в качестве входных аргументов имена файлов. Любые криптографические функции (какой нибудь генератор сессий, к примеру) не читают из любых рэндомных файлов. Там все немного хитрее. Параметр session.entropy_file должен быть определен администратором. Вполне вероятно что ограничение open_basedir уже активировано на тот кусок кода, который будет читать случайные данные из session.entropy_file.
...