Выполнение сценариев как небезопасный пользователь apache (www-data)?Как выглядит современная установка? - PullRequest
0 голосов
/ 04 декабря 2011

Мои сценарии (php, python и т. Д.) И сценарии других пользователей в моей системе Linux выполняются пользователем apache, называемым "www-data". Пожалуйста, поправьте меня, если я ошибаюсь, но это может привести к нескольким неловким ситуациям:

  1. Я могу читать исходный код сценариев других пользователей с помощью сценария. Я мог бы найти жестко запрограммированные пароли базы данных.
  2. Файлы, написанные сценариями и загружаемыми файлами, принадлежат www-данным и могут быть нечитаемыми или не удаляемыми владельцем сценария.
  3. Пользователи хотят, чтобы их загружаемые папки были доступны для записи с помощью www-данных. Используя скрипт, я теперь могу писать в другие каталоги загрузки пользователей.
  4. Пользователи, разочарованные этими проблемами с разрешениями, начнут устанавливать разрешения для файлов и каталогов на 777 (просто загляните на форум поддержки Wordpress…).
  5. Достаточно одного сценария, который можно было бы использовать, чтобы подвергнуть опасности всех остальных пользователей. Защита прав доступа к файлам ОС не сильно поможет сдержать ущерб.

Так как же люди в наше время справляются с этим? Каков разумный (архитектурно правильный) подход для поддержки нескольких веб-платформ в общей системе без ослабления традиционной безопасности на основе разрешений файлов? По-прежнему ли целесообразно использовать fastCGI? Как вписываются современные интерфейсы (wsgi) и стратегии производительности?

Спасибо за любые подсказки!

Ответы [ 2 ]

1 голос
/ 05 декабря 2011

насколько я понимаю, поправьте меня, если я ошибаюсь!

ad 1. - 4. с wsgi у вас есть возможность изменить и тем самым ограничить пользователя / группу для каждого процесса. http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGIDaemonProcess

ad 5. с помощью wsgi вы можете изолировать процессы. http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGIProcessGroup

цитата с mod_wsgi-страницы: «Альтернативным режимом работы, доступным в Apache 2.X в UNIX, является режим« демон ». Этот режим работает аналогично решениям FASTCGI / SCGI, при этом для запуска приложения WSGI могут быть выделены отдельные процессы. Однако, в отличие от решений FASTCGI / SCGI при реализации приложения WSGI не требуется ни отдельного супервизора процессов, ни адаптера WSGI, и все автоматически обрабатывается mod_wsgi.

Поскольку приложения WSGI в режиме демона выполняются в своих собственных процессах, влияние на нормальные дочерние процессы Apache, используемые для обслуживания статических файлов и хост-приложений, использующих модули Apache для PHP, Perl или другого языка, значительно снижено. При необходимости процессы-демоны могут запускаться от имени отдельного пользователя, гарантирующего, что приложения WSGI не могут мешать друг другу или получать доступ к информации, к которой они не должны иметь доступа. "

0 голосов
/ 22 декабря 2011

Все ваши очки действительны. Пункты 1, 3 и 5 решаются путем установки директивы open_basedir в вашей конфигурации Apache. 2 и 4 действительно раздражают, но файлы, загруженные веб-приложением, также (надеюсь) удаляются с помощью того же приложения.

...