1

Я использую экспериментальный веб-сервер Apache для развлечения. Частью идеи этого сервера является то, что он должен быть необычно открытым для публики; например, корневая файловая система должна быть открыта для просмотра любым пользователем. (Действительно, вот оно: http://sylvester.s.zbasu.net/rootfs/) Как следствие, безопасность отойдет на второй план.

Тем не менее, есть вещи, к которым Apache должен иметь доступ, но публика не должна этого делать. Пример, с которым я сталкиваюсь - это сайт Django. Файл settings.py должен быть доступен для чтения Apache, иначе Django не будет работать. Но settings.py не должен быть доступен для чтения публичным пользователям, так как он содержит секретный ключ. Таким образом, файл должен принадлежать www-data , но Apache, тем не менее, должен отказаться от его обслуживания.

Одно из возможных решений (благодаря ellipsis753 на Freenode) - создать специальную директиву, возможно, в файле .htaccess , сообщающую Apache не обслуживать этот файл. Тем не менее, я считаю, что если файл не доступен для чтения всем пользователям, он, вероятно, не должен обслуживаться Apache.

Могу ли я сказать Apache, что если файл не доступен для чтения во всем мире, то его не следует обслуживать?

1 ответ1

1

Если вы запускаете свое приложение Django в FastCGI или в режиме Daemon mod_wsgi, то вы можете запускать его как пользователь, отличный от того, под которым работает Apache. Затем вы можете полностью удалить разрешение Apache и World на чтение любого файла, который вы не хотите обслуживать.

Например, обратите внимание, что ваш файл паролей /etc/shadow уже недоступен, потому что у Apache нет на него разрешений и он не доступен для чтения всем пользователям. Если вы создаете нового пользователя, например, web-apps , и добавляете WSGIDaemonProcess myapp user=web-apps ... в конфигурацию Apache, то вы можете сделать так, чтобы приложение Django принадлежало пользователю web-apps с его конфигурацией. Файл не доступен для чтения, как и файл shadow .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .