Как убедиться, что пользователь не может переопределить этот параметр с помощью .htaccess или настраиваемых php.ini любых советов по настройке, которые я должен использовать
Чтобы пользователи не устанавливали значения конфигурации PHP в файлах .htaccess, не AllowOverride Options
разрешениям AllowOverride Options
на своих виртуальных хостах.
Кроме того, установите PHP как CGI, а не как модуль Apache, так как версия CGI не изменяется файлами .htaccess. Однако, начиная с PHP 5.3.0, PHP CGI анализирует файлы php.ini для каждого каталога. Я не знаю метода, который отключает это.
EDIT: Я только что видел это в последнем по умолчанию php.ini:
; Directives following the section heading [PATH=/www/mysite] only ; apply to PHP files in the /www/mysite directory. Directives ; following the section heading [HOST=www.example.com] only apply to ; PHP files served from www.example.com. Directives set in these ; special sections cannot be overridden by user-defined INI files or ; at runtime. Currently, [PATH=] and [HOST=] sections only work under ; CGI/FastCGI. ; http://php.net/ini.sections
Поэтому, если вы помещаете директивы в свой основной php.ini под заголовками в каждом каталоге, они не могут быть переопределены. Однако недостатком является то, что вам придется делать это для каждого виртуального хоста, поэтому это будет PITA в средах, где их много или где новые часто добавляются.
ИЗМЕНИТЬ СНОВА:
Дальнейшее чтение показало это:
; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" ;user_ini.filename = ".user.ini" ; To disable this feature set this option to empty value ;user_ini.filename =
Так что просто раскомментируйте эту последнюю строку, чтобы отключить файлы ini для каждого пользователя. 🙂