Riscos de segurança do eval
Em uma implantação de produção do LangGraph CodeAct, é fácil usar o eval A execução do código gerado representa um sério risco de segurança:
- Riscos de injeção de códigoPossível execução de código maliciosamente construído
- Problemas de privilégio do sistemaAcesso a recursos do sistema e informações confidenciais
- Efeitos da estabilidadePode causar o travamento do programa ou a falta de recursos
Programa de implementação de segurança
Recomenda-se usar um sandbox de código especializado para uma execução segura:
- isolamento de processosExecutar o código em um processo separado
- Restrições de recursosLimitar o uso da CPU, da memória e de outros recursos
- controle de privilégiosPrivilégios de execução reduzidos e acesso restrito a documentos
- Tratamento de tempo limiteDefinição do limite superior do tempo de execução
Implementação de sandbox personalizado
O artigo fornece um exemplo básico:
def custom_sandbox(code: str, _locals: dict) -> tuple[str, dict]:
try:
with open("temp.py", "w") as f:
f.write(code)
import subprocess
result = subprocess.check_output(["python", "temp.py"], text=True)
return result, {}
except Exception as e:
return f"错误: {e}", {}
Essa implementação fornece isolamento básico de segurança gravando código em um arquivo temporário e executando-o por meio de um processo filho.
Recomendações de programas profissionais
Para aplicativos de nível empresarial, é recomendável considerar o uso de uma solução comprovada de sandboxing, como:
- Contêineres do Docker
- Serviço de sandbox de código dedicado
- Ambiente de execução de funções na nuvem
Essa resposta foi extraída do artigoLangGraph CodeAct: geração de código para ajudar as inteligências a resolver tarefas complexasO
































