Я хорошо осведомлен о преимуществах запуска разных веб-сайтов под разными учетными записями пользователей, чтобы ограничить ущерб в случае взлома одного веб-приложения. Мне было поручено установить блог wordpress в нашем основном корпоративном домене как подпапку (example.com/blog) домена, а не как поддомен (я считаю, что это стратегия SEO). Я должен отделить блог от основного сайта электронной коммерции (у которого есть доступ к нашей базе данных учетных записей пользователей), но я не вижу четкого способа сделать это с помощью suexec.
Единственная мысль, которая у меня возникла, - это установить блог на отдельный сервер и использовать mod_proxy на основном сайте в качестве обратного прокси. Однако это означает, что нам придется поддерживать основной шаблон веб-сайта в двух разных местах (блог должен быть интегрирован с основным сайтом с тем же заголовком, нижним колонтитулом и т. Д.). Если это единственное решение, то, вероятно, я выберу этот путь, но я хотел бы знать, есть ли у кого-нибудь другие идеи, я был бы очень признателен.
Прежде всего убедитесь, что у электронной коммерции и блога отдельные базы данных и отдельные учетные записи MySQL. Убедитесь, что эти учетные записи не имеют доступа друг к другу или к базе данных с именем mysql
. Убедитесь, что ни у кого из них нет FILE
привилегии, которые являются наиболее опасными привилегиями, которые вы можете дать веб-приложению, и в этом случае, даже если Apache / PHP был заблокирован, злоумышленник может использовать MySQL для чтения и записи файлов в другое приложение.
Дело с suexec заключается в том, что приложение php запускается от имени конкретного пользователя. Это идеально подходит для виртуального хостинга и для того, что вы делаете. Обычно создайте 2 учетные записи пользователей и 2 каталога приложений. Убедитесь, что эти пользователи не могут получить доступ к каталогам друг друга. (что-то вроде chown wordpress -R /var/www/blog && chmod 550 -R /var/www/blog
). Затем предоставьте suexec правильная конфигурация.
Я бы также побежал phpsecinfo, запретите доступ к оболочке для обеих учетных записей, установив для них значение / bin / false. Рассмотрите возможность установки WAF, например mod_security.
Обратный прокси-сервер, вероятно, является подходящим вариантом - даже если в блоге используется один и тот же внешний вид верхнего и нижнего колонтитула, он, вероятно, не использует одинаковую точную кодировку, поэтому у вас будет проблема с двумя кодовыми базами в любом случае, если вы хотите их нести.
Лично я бы установил фронтенд spearcatcher и обратный прокси для всех запросов для всего, так что все серверы приложений фактически имеют двойной брандмауэр.