Можно ли импортировать модуль в python без использования «import» или «eval»?

1

Я проектирую систему, которая будет запускать пользовательский скрипт python на сервере. Сценарий должен иметь доступ только к нескольким модулям, перечисленным в белом списке, и ничего больше.

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

Другим подходом является предварительная обработка сценария и проверка наличия ключевых слов "импорт" и "eval". Если эти ключевые слова присутствуют, сценарий не будет запущен, а сигналы тревоги исчезнут. Но есть ли другой способ, посредством которого можно все же импортировать модуль и делать вредоносные вещи?

  • 0
    Это возможно, но очень сложно; было бы легко что-то пропустить.
Теги:
security

1 ответ

2
Лучший ответ

Прочитать эту тему: позволить пользователям загружать скрипты Python для выполнения

  • 0
    Специально игнорируйте все, что есть в нем, кроме битов о pypy и js. Человек эти люди рекомендовали небезопасные вещи.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню