При попытке защитить сайт (LAMP и WordPress) на общем хосте, который стал жертвой фармацевтического взлома; Я советовал владельцу сайта следовать лучшим практикам wordpress отсюда http://codex.wordpress.org/Harpting_WordPress и есть эта команда, чтобы сделать файлы доступными только для чтения для всех, кроме владельца
find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;
Но я сбежал <?php echo exec('whoami'); ?>
и обнаружил, что пользователь apache работает от имени того же пользователя, что и владелец сайта для SFTP. Итак, Apache работает как владелец файла.
Мне это кажется серьезной проблемой безопасности, потому что все, что может сделать владелец сайта, могут делать плагины Wordpress!
Правильно ли я, что это то, что хост должен исправить? Если они сопротивляются, что я могу сказать, чтобы убедить их, и достаточно ли большая проблема, чтобы оправдать смену хоста?
Обновить : Для ясности я говорю об эффективной защите веб-сайта от самого себя. Чтобы предотвратить дыры в плагинах, используемых для записи / редактирования кода на сервере, если веб-сервер работает от имени владельца сайта, тогда плагины могут быть изменены для установки произвольного кода и изменения .htaccess
обновление 2: когда я сказал "дыра в безопасности", я мог иметь в виду "уязвимость"
У меня, по-видимому, другое мнение, чем у Романа, но я думаю, что большая проблема заключается в том, что многие сайты PHP запускаются как владельцы файлов * .PHP (часто www-data). Это даже необходимо, если вы хотите иметь возможность использовать такие функции, как автообновление Wordpress, потому что веб-серверу необходимо записывать файлы PHP.
На сайтах PHP будут утечки, которые позволят вам внедрить код в их файлы, это в значительной степени само собой разумеющееся. Итак, вы хотите защитить себя от этого. Даже установка только для чтения часто не работает, потому что каталог по-прежнему доступен для записи, а когда пользователь владеет файлом, доступ только для чтения можно просто переопределить.
Не обязательно. Это распространенный подход к запуску отдельных процессов apache под обычными учетными записями пользователей, особенно на общих хостах.. Это не проблема безопасности как таковая. Вместо этого это может быть неправильная модель безопасности для ваших требований. Если вам нужна ваша учетная запись для других важных вещей, помимо веб-обслуживания, вам все равно следует полностью изолировать свое присутствие в Интернете.
Вы можете спросить их, доступна ли у них другая конфигурация (иногда они есть).
Редактировать: Чтобы уточнить. Это проблема для ваш конкретный вариант использования. Как? Взгляните на хостера на минуту: здесь они хотят изолировать свои пользователи a.k.a. клиенты друг от друга (и остальная часть системы), следовательно, запуск процессов под соответствующими учетными записями пользователей. Запуск их всех под одной и той же учетной записью (например, www-data) будет означать взлом на одном клиентском сайте данных других клиентов, которые также будут скомпрометированы.
Вы, с другой стороны, и я согласен с вами, необходимо изолировать остальные ваши данные от вашего веб-присутствия.
Есть много возможных решений этой проблемы, одно из которых, как вы предложили, дает каждому клиенту две учетные записи. Или действительно хорошая конфигурация apache / cgi, изолирующая веб-сервер от определенного фиксированного подкаталога в доме пользователя без возможности взлома (что было сделано у одного работодателя, с которым я работал в прошлом). Лучше всего согласовывать с вашим хостером.
установите open_basedir в php.ini для этого пользователя. Используйте fcgid. Таким образом, этот сайт будет защищен от самого себя. Также используйте disable_functions, чтобы отключить доступ к оболочке и т. Д.
Вот и все :)