Безопасная конфигурация PHP: настройки php.ini для продакшн

Безопасность · 19.04.2026
Безопасная конфигурация PHP: настройки php.ini для продакшн

Настройки PHP по умолчанию оптимизированы для разработки, а не для продакшн. На публичном сервере они раскрывают версию PHP и внутренние пути, позволяют опасные операции.

Найти php.ini

php --ini | grep "Loaded Configuration"
# /etc/php/8.3/fpm/php.ini

Обязательные настройки безопасности

display_errors = Off
display_startup_errors = Off
log_errors = On
error_log = /var/log/php/errors.log
expose_php = Off

open_basedir = /var/www/site/:/tmp/:/var/lib/php/sessions/

disable_functions = exec,passthru,shell_exec,system,proc_open,popen,phpinfo

file_uploads = On
upload_max_filesize = 10M
max_file_uploads = 5
max_execution_time = 30
memory_limit = 256M

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

session.cookie_httponly = 1
session.cookie_secure = 1
session.cookie_samesite = Strict
session.use_only_cookies = 1
session.use_strict_mode = 1
session.gc_maxlifetime = 1440
session.save_path = /var/lib/php/sessions

Проверка конфигурации

php -r "echo ini_get('expose_php');"
php -r "echo ini_get('display_errors');"
open_basedir ограничивает PHP доступом к файлам вне указанных директорий. Это блокирует атаки Path Traversal и LFI (Local File Inclusion), когда злоумышленник пытается прочитать /etc/passwd.
disable_functions можно обойти через PHP-расширения. Это дополнительный слой защиты, но не замена правильному коду и регулярным обновлениям.
← Назад в базу знаний Задать вопрос поддержке