Решение проблемы безопасности разделяемого сервера для Python

Итак, моя группа пытается создать среду с разделяемым сервером для различных веб-сервисов. Я думаю, мы остановились на настройке disable_functions и disable_classes для всего сайта в php.ini и php_admin_value, чтобы заставить open_basedir в httpd.conf каждого приложения. для скриптов php и переключение пользователей пассажира для скриптов ruby.

Однако нам все еще нужно найти что-то для python. Passenger поддерживает python, но не для обеспечения безопасности отдельных подкаталогов для отдельных приложений (это все или ничего на уровне домена).

Какие-либо предложения?

(И если что-либо из предыдущего не имеет смысла - ну, я тот парень, который должен настроить поддержку python, а не парень, который установил поддержку php или ruby, так что есть еще кое-что ", а затем немного волшебства случается "шаги туда с моей точки зрения").

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
734
1

Ответы 1

Ну, есть система под названием virtualenv, которая позволяет вам запускать Python в своего рода безопасной среде и настраивать / загружать / отключать эти среды на лету. Я мало что знаю об этом, но вы должны всерьез взглянуть на это; вот описание с его веб-страницы (просто погуглите, и вы найдете):

The basic problem being addressed is one of dependencies and versions, and indirectly permissions. Imagine you have an application that needs version 1 of LibFoo, but another application requires version 2. How can you use both these applications? If you install everything into /usr/lib/python2.4/site-packages (or whatever your platform's standard location is), it's easy to end up in a situation where you unintentionally upgrade an application that shouldn't be upgraded.

Or more generally, what if you want to install an application and leave it be? If an application works, any change in its libraries or the versions of those libraries can break the application.

Also, what if you can't install packages into the global site-packages directory? For instance, on a shared host.

In all these cases, virtualenv can help you. It creates an environment that has its own installation directories, that doesn't share libraries with other virtualenv environments (and optionally doesn't use the globally installed libraries either).

«Безопасная среда», которую вы упомянули в контексте virtualenv, просто безопасна для кода. Он только заботится о том, чтобы скрипт, который запускается в venv, использовал правильный интерпретатор Python и библиотеки, он не применяет какую-либо «политику» безопасности, которая была упомянута в вопросе.

Manuel Faux 12.05.2010 19:38

Другие вопросы по теме