Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

253
Visualizações
¿Cómo puedo aceptar y ejecutar el código del usuario de forma segura en mi aplicación web?

Estoy trabajando en una aplicación web basada en django que toma el archivo python como entrada que contiene alguna función, luego en el backend tengo algunas listas que se pasan como parámetros a través de la función del usuario, lo que generará una salida de valor único. El resultado generado será utilizado para algunos cálculos adicionales.

Así es como se ve la función dentro del archivo del usuario:

 def somefunctionname(list): ''' some computation performed on list''' return float value

Actualmente, el enfoque que estoy usando es tomar el archivo del usuario como entrada de archivo normal. Luego, en mi views.py estoy ejecutando el archivo como módulo y pasando los parámetros con la función eval. Fragmento se da a continuación.

Aquí modulename es el nombre del archivo python que tomé del usuario e importé como módulo

 exec("import "+modulename) result = eval(f"{modulename}.{somefunctionname}(arguments)")

Que está funcionando absolutamente bien. Pero sé que este no es el enfoque seguro.

Mi pregunta, ¿hay alguna otra forma de ejecutar el archivo de los usuarios de forma segura ya que el método que estoy usando no es seguro? Sé que las soluciones propuestas no pueden ser una prueba completa, pero ¿cuáles son las otras formas en que puedo ejecutar esto (por ejemplo, si se puede resolver con dockerización, entonces cuál será el enfoque o algunas herramientas externas que puedo usar con API)? O, si es posible, ¿alguien puede decirme cómo puedo simplemente aislar esto o cualquier tutorial que pueda ayudarme?

Cualquier referencia o recurso será útil.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Seguro que con la ventana acoplable puede aislar la ejecución si tiene cuidado. Puede restringir los ciclos de CPU, maximizar la memoria, cerrar todos los puertos de red, ejecutar como usuario con acceso de solo lectura al sistema de archivos y todo).

Aún así, esto sería extremadamente complejo para hacerlo bien, creo. Para mí, no permitirá que un cliente ejecute un código arbitrar como ese.

Sería verificar si una producción/solución aún no está hecha y usar eso. Estaba pensando que algunos sitios te permiten enviar algún código (python, java, lo que sea) que se ejecuta en el servidor.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda