Эта статья говорит, что имея opcache_get_status()
enabled представляет собой угрозу безопасности. Чтобы выключить его, нужно настроить opcache.restrict_api
, но я не нашел примера, как это сделать.
Этот человек действует ограничение при настройке как opcache.restrict_api=/restricted
, что дает мне понять, что это должен быть путь.
Я начал с создания тестового сценария с opcache_get_status()
вызов, и я получил вывод множества сценариев PHP для этой системы, подтверждающих отсутствие ограничений. Затем я отредактировал свой /etc/php/7.3/fpm/php.ini
иметь opcache.restrict_api=/dev/null
, и тот же вызов теперь возвращает bool(false)
- Считаю, что ограничение включено.
Моя цель запретить opcache_get_status()
и тому подобное полностью, и "разрешив" скрипты под /dev/null
, Я по существу делаю невозможным использование, так как вы не можете там файл.
Спасибо
Глядя на исходный код ext / opcache / zend_accelerator_module.c
validate_api_restriction()
нужно вернуться true
. SG(request_info).path_translated
(что, по-видимому, равно SCRIPT_FILENAME
) и сопоставляет это с restrict_api
, сравнивая первые несколько персонажей двух значений.path_translated
a.k.a. SCRIPT_FILENAME
косая черта, opcache.restrict_api=1
не будет соответствовать (/
знак равно 1
), и поэтому выглядит безопасным для использованияТакже вот кто-то еще использует opcache.restrict_api=1
слишком.
Пожалуйста, поправьте меня, если я где-то ошибаюсь! А пока я чувствую, что это в значительной степени отвечает на мой вопрос.