Sandboxing Python em Pure Python apresenta desafios únicos, pois envolve isolar o código Python do ambiente host para evitar usuários mal-intencionados de comprometer o sistema. Vamos explorar as duas abordagens principais para esse problema e identificar alternativas adequadas para a criação de um ambiente de script seguro.
Messa sugere a criação de um ambiente de execução restrito com acesso limitado a globais . Embora esse método forneça uma aparência de proteção, ele é suscetível a explorações que permitem que o código escape da sandbox. Usuários maliciosos podem explorar exceções, manipular estados internos ou utilizar a manipulação de bytecode para sair da sandbox.
Essa abordagem envolve a análise do código Python e a remoção seletiva construções indesejadas usando o módulo ast. Ao eliminar instruções de importação, chamadas de função e outros riscos potenciais de segurança, é possível criar um ambiente de execução seguro adaptado a requisitos específicos.
Se a sintaxe de script Pythonic não for estritamente necessário, considere usar outros interpretadores de script de código aberto escritos em Python puro que atendam aos critérios de variáveis, condicionais e chamadas de função. Esses intérpretes podem oferecer uma base mais robusta e segura para seu jogo na web.
Para aqueles que não utilizam o Google App Engine (GAE), o sandbox PyPy oferece uma solução de sandbox supostamente "real". Seus recursos foram elogiados por usuários que atestam sua eficácia na prevenção de escapes de sandbox.
Seus requisitos mencionam especificamente suporte para variáveis, condicionais básicos e chamadas de função (excluindo definições ). A abordagem 2, que envolve análise de código e manipulação de AST, parece uma opção viável de avaliação. Ele permite a personalização e pode remover com eficácia construções desnecessárias.
Sandboxing Python em Python puro pode ser alcançado por meio de consideração cuidadosa de ambientes de execução e técnicas de análise de código. Embora uma linguagem de script verdadeiramente completa possa ser um exagero para o seu jogo, as alternativas apresentadas aqui oferecem um equilíbrio entre flexibilidade e segurança.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3