apache+php-fpm и безопасность в общей среде по сравнению с apache+suexec+mod_fastcgi
Я использую Apache с suexec и mod_fastcgi. Он запускает обработчики PHP как выбранный системный пользователь и слушает запрос через PIPES (протокол fastcgi). Это работает хорошо, но не может поделиться кодом операции через много обработчиков.
Я изучал подход php-fpm. Это действительно плохо задокументировано. Я вижу только то, что он работает только как TCP-сервер fastcgi, например 127.0.0.1:9999, под выбранным пользователем системы, и Apache должен подключиться к нему с помощью FastCGIExternalServer или fastcgi proxy mod.
Что помешает другим локальным пользователям подключиться к 127.0.0.1:9999 и передать их собственный код обработчику, работающему от имени другого системного пользователя?
Это кажется совершенно небезопасным в общей среде. Я что-то упустил или что?
1 ответ
Да, они могут отправлять запросы, но чем это отличается от того, что они делают в браузере или в wget? Все, что они получат, это вывод php.
Они могут вызвать проблемы, загоняя ваш сервер php-fpm запросами. Но любой ввод, который они могут отправить, должен обрабатываться так же, как если бы он поступил из запроса браузера.
Но они вмешиваются после любых проверок безопасности apache / nginx, таких как mod_security и т. Д. Так что это может быть проблемой, если у вас есть уязвимое php-приложение.
Но если у вас есть свои пулы, настроенные для запуска каждого пула как отдельного пользователя, и вы устанавливаете php-файлы не доступными для чтения, это не должно быть слишком плохо, если я тоже что-то упустил.