[SOLUCIONADO]Módulo HTTP de Python

Iniciado por Diesan Romero, Noviembre 10, 2020, 06:59:09 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Noviembre 10, 2020, 06:59:09 PM Ultima modificación: Noviembre 11, 2020, 03:42:28 PM por blackdrake
Hace unos días he estado queriendo profundizar en Python. Inevitablemente me topé con el módulo HTTP y en la documentación veo que este módulo no es recomendable para producción ¿Alguien sabe por qué? En la documentación no me vienen claves específicas. Me imagino que abrá problemas de seguridad que uno deberá de resolver, ya sea con código propio o módulos de tercero.

Evalué unas opciones más elaboradas, como Django y Flask. Django realmente me gustó cantidad, de hecho lo probé, y ya viene con varias implementaciones de seguridad, módulo de usuarios y autenticación. Flask honestamente no lo probé, pero indagando en Internet me di cuenta que es más minimalista y tampoco lo recomiendan mucho para producción.

¿Opiniones?

Noviembre 10, 2020, 09:18:42 PM #1 Ultima modificación: Noviembre 10, 2020, 09:20:30 PM por Kirari
Buenas!

A diferencia de servidores web tradicionales, el módulo HTTP solo usa las medidas de seguridad básicas. Estos son pequeños proyectos de servidores web, los cuales son desarrollados específicamente para el lenguaje. Aunque no haya vulnerabilidades conocidas de este módulo, siempre puede haber alguna debido a la complejidad de los mismos. Los grandes proyectos como Apache o Nginx toman medidas de seguridad muy altas, porque son proyectos preparados para estar en producción (aunque sean para esto último, no implica que no tengan sus fallas). Además el módulo HTTP reduce un montón de código y es muy simple de configurar, por lo que ahorra mucho tiempo de lo que tomaría un servidor web específico.

En cuanto a Flask, no es recomendable para producción debido a que solo fue hecho con propósitos de desarrollo. Esto implica fallas como la de no aguantar múltiples solicitudes o que se pueda iniciar una shell para ejecutar código arbitrario en un modo de depuración.

Espero haberte ayudado en algo. Saludos!
-Kirari

Noviembre 11, 2020, 04:24:37 PM #2 Ultima modificación: Noviembre 11, 2020, 06:45:15 PM por DtxdF
Agregando un poco de lo que mencionó el compañero. Le recomiendo también que indague sobre distintos proyectos además de los mencionados, tales como: Django (hecho), Tornado, Twisted, entre otros; no eliga uno u otro sin antes saber de qué va a tratar su proyecto, qué tan complejo, y demás, aunque lo común de ellos es que manejan múltiples peticiones, también lo que debe saber es la forma en que lo hacen y qué tan configurable son.

Si desea el más minimalista de los que mencioné, Tornado es ideal, tiene buena documentación y aunque esté mejor documentado para HTTP también puede con lo necesario documentado, crear un servidor TCP cualquiera, además que sí cuenta con medidas de seguridad y actualizaciones. Le dejo por acá estos enlaces:

*- No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
*- No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Tornado explota la asincronía que proporciona Python, además cuenta con clientes que hacen uso del núcleo de Tornado, pero si desea indagar mucho más, le recomiendo los siguientes enlaces:

*- No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
*- No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Twisted también es excelente, pero de verdad eliga el que se adapte a su proyecto y explote cada uno para comprobarlo, es lo mejor que podría hacer.

~ DtxdF
PGP :: <D82F366940155CB043147178C4E075FC4403BDDC>

~ DtxdF