Песочница Python в чистом Python создает уникальные проблемы, поскольку она предполагает изоляцию кода Python от хост-среды для предотвращения злонамеренных пользователей от компрометации системы. Давайте рассмотрим два основных подхода к этой проблеме и определим подходящие альтернативы для создания безопасной среды сценариев.
Месса предлагает создать ограниченную среду выполнения с ограниченным доступом к глобальным переменным. . Хотя этот метод обеспечивает видимость защиты, он подвержен эксплойтам, позволяющим коду выйти за пределы «песочницы». Злоумышленники могут использовать исключения, манипулировать внутренними состояниями или использовать манипуляции с байт-кодом для выхода из песочницы.
Этот подход включает анализ кода Python и выборочное удаление нежелательные конструкции с использованием модуля ast. Устранив операторы импорта, вызовы функций и другие потенциальные угрозы безопасности, можно создать безопасную среду выполнения, адаптированную к конкретным требованиям.
Если синтаксис сценариев Python не является При строгой необходимости рассмотрите возможность использования других интерпретаторов сценариев с открытым исходным кодом, написанных на чистом Python, которые соответствуют критериям переменных, условий и вызовов функций. Эти интерпретаторы могут стать более надежной и безопасной основой для вашей веб-игры.
Для тех, кто не использует Google App Engine (GAE), предлагается песочница PyPy как сообщается, «настоящее» решение для песочницы. Его возможности получили высокую оценку пользователей, которые подтверждают его эффективность в предотвращении выхода из песочницы.
В ваших требованиях конкретно упоминается поддержка переменных, основных условий и вызовов функций (за исключением определений). ). Подход 2, включающий анализ кода и манипулирование AST, кажется приемлемым вариантом для оценки. Он допускает настройку и эффективно удаляет ненужные конструкции.
Песочница Python в чистом Python может быть достигнута путем тщательного рассмотрения сред выполнения и методов анализа кода. Хотя по-настоящему полнофункциональный язык сценариев может оказаться излишним для вашей игры, представленные здесь альтернативы предлагают баланс гибкости и безопасности.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3