zaLinux.ru

Как отключить определённые функции в PHP


Насколько целесообразно отключать некоторые функции PHP для безопасности

Говоря о безопасности, отключение ряда «опасных» функций PHP всегда идёт на последнем месте. По-настоящему безопасным веб-сайт и веб-сервер делают:

1) хорошо написанный код

2) надлежащая фильтрация и проверка любых поступающих от пользователя данных

3) своевременное обновление программного обеспечения: начиная с самого сервера и кончая CMS

Что касается блокировки «опасных» функций, то это скорее негодные средства для обеспечения информационной безопасности сайта. Если в системе найдены уязвимости, позволяющие выполнять PHP код, то хакер сможет выполнить компрометацию системы и с использованием «безопасных» функций.

Когда нужно отключать функции PHP?

Необходимость отключения функций может понадобиться на совместно используемых веб-серверах, чтобы не позволить пользователям выполнять определённые функции. Но по факту современные провайдеры хостинг услуг движуться в противоположном направлении: открывают пользователям доступ по SSH и не отключают функции PHP поскольку, повторюсь, это не относится к вопросам безопасности. Информационная безопасность веб-сервера, в том числе совместно используемого, обеспечивается другими мерами:

1) Правильно настроенными правами на файлы и директории

2) Надёжные пароли

3) Прочее

Как отключить функции в PHP

Чтобы сделать некоторые функции недоступными, используется:


disable_functions =

Эта директива позволяет отключить некоторые функции по причинам безопасности. Она принимает список имён функций, разделённый запятыми. disable_functions не подвержена влиянию безопасного режима.

Только внутренние функции могут быть отключены с помощью этой директивы. Пользовательские функции ей не подвержены.

Эта директива должна быть установлена в php.ini. Например, её нельзя использовать в httpd.conf.

Какие функции PHP нужно отключать

Как уже было сказано, функции PHP нужно отключать по ясным для системного администратора причинам, которые и определят список функций. Если вам нужен универсальный список опасных функций, то он такой:

disable_functions =exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

Как отключить eval в PHP

Если вы хотите отключить eval, то у вас серьёзная проблема — это не функция (это конструкция языка), поэтому с помощью disable_functions не получится отключить eval.

Для отключения eval() в PHP рекомендуют обратиться к стороннему расширению Suhosin.

Как отключить классы в PHP

Поскольку PHP это ещё и объектно-ориентированный язык, то для классов также предусмотрена возможность их отключения:

disable_classes =

Эта директива позволяет отключить некоторые классы по причинам безопасности. Она принимает список имён классов, разделённых запятыми. disable_classes не подвержена влиянию безопасного режима. Эта директива должна быть установлена в php.ini. Например, её нельзя использовать в httpd.conf.


Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *