2010-12-02 2 views
7

У меня была страшная проблема несколько дней назад. Я устанавливал обновления на моем сервере ubuntu, который является хостом для примерно 10 веб-сайтов. Во время обновления что-то пошло не так, и apaches mod_php стал отключенным. В результате поддержка PHP исчезла, и в течение нескольких минут (пока я не понял, что не так) пользователи получили приглашение загрузить скрипты PHP, вместо того, чтобы видеть веб-сайт. Излишне говорить, что нет ничего хуже, чем разоблачение ваших источников скриптов всему миру, особенно когда хранятся учетные данные базы данных.Защита PHP-скриптов

Вопрос: Как настроить apache, чтобы эта ситуация не была возможна в будущем? Какие строки следует добавить в apache2.conf, чтобы файлы PHP не могли быть загружены, если mod_php отключен?

+2

Я думаю, что вы, вероятно, должны просто спустить свой апач при обновлении = | – 2010-12-02 10:09:15

ответ

9

Просто добавьте следующие строки в .htaccess в корневой директории

php_admin_flag engine on 

В этом случае пользователь получит HTTP ошибку 500 пытаясь прочитать любой файл из этой директории и не ниже, потому что нет модуля определяет директиву php_admin_flag в случае mod_php выключен.

+0

Ха-ха, я думаю, что работает. Немного уродливый, но он выполняет эту работу. – VDVLeon 2010-12-02 10:17:23

+0

Это очень хорошо. – 2010-12-02 10:18:15

5

Более безопасный подход состоял бы в том, чтобы просто не поместить вещи, которые вы не хотите получать в корне документа в первую очередь. См. Мой ответ here, который содержит более подробную информацию; основная идея заключается в том, что если вы никогда не хотите, чтобы к файлу обращались по URL-адресу, не помещайте проклятый файл в доступный URL-адрес. 99% вашего кода приложения не должны находиться под корнем документа; то не имеет значения, что вы делаете с настройкой apache/php, вы по-прежнему в безопасности.