Безопасность

Уровни безопасности PHP

Выбор версии PHP и уровня безопасности определяет, какие функции доступны на сервере для вашего сайта. Уровень задаёт набор функций PHP, которые запрещены к вызову, чтобы предотвратить возможные уязвимости. Ниже — все четыре уровня, список запрещённых функций на каждом и правила выбора уровня.

Что такое уровень безопасности PHP

Уровень безопасности PHP определяется набором функций, которые запрещены к вызову на сервере. Чем шире список запрещённых функций в конфигурации, тем строже защита сайта. Уровень влияет на защиту без изменения кода сайта: он задаётся параметром disable_functions в конфигурации PHP.

Отличная безопасность

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

disable_functions=shmop_open,shmop_write,pcntl_exec,popen,exec,system,passthru,proc_open, shell_exec,ftp_exec,chmod,phpinfo,ini_restore,dl,symlink,chgrp,putenv,getmyuid,posix_setuid, posix_setsid,posix_setpgid,posix_kill,apache_child_terminate,virtual,proc_close,proc_get_status, proc_terminate,proc_nice,getmygid,proc_getstatus,escapeshellarg,show_source,pclose,safe_dir, chown,shown_source,mysql_list_dbs,get_current_user,getmyid,leak,pfsockopen,syslog,phpcredits, pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled, pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error, pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_getpriority,pcntl_setpriority
expose_php=0
mail.add_x_header=1

Хорошая безопасность

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

disable_functions=popen,exec,system,passthru,proc_open,shell_exec,phpinfo,ftp_exec,symlink,chgrp, putenv,getmyuid,posix_setuid,posix_setsid,posix_setpgid,posix_kill,apache_child_terminate,virtual,proc_close, proc_get_status,proc_terminate,proc_nice,getmygid,proc_getstatus,escapeshellarg,show_source,pclose, safe_dir,chown,shown_source,mysql_list_dbs,get_current_user,getmyid,leak,pfsockopen,syslog,phpcredits, pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus, pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror, pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_getpriority,pcntl_setpriority
expose_php=0
mail.add_x_header=1

Нормальная безопасность

Стандартная конфигурация PHP без дополнительных ограничений на функции. Уровень предлагает базовую безопасность и подходит для сайтов с минимальными требованиями к защите.

Низкая безопасность

Специфических ограничений на функции PHP нет, действуют только базовые настройки: параметр expose_php отключён, mail.add_x_header включён.

disable_functions=
expose_php=0
mail.add_x_header=1

Уровень можно выбрать для разработки или тестирования, но для продакшн-проектов он не рекомендуется из-за повышенного риска безопасности.

Как выбрать уровень безопасности

Оптимальный уровень зависит от множества факторов: типа контента, обрабатываемой информации и общих требований к безопасности сайта. Для сайтов с конфиденциальными данными или высоким риском атак выбирайте «Отличную безопасность», для большинства проектов подходит «Хорошая».

Регулярно обновляйте версию PHP до последней стабильной: обновление обеспечивает наилучшую защиту и производительность сайта.

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