Prólogo para programadores experimentados

Thread-Locals en Flask

Una de las decisiones de diseño en Flask fue que las tareas simples deben ser simples; no deben tomar mucho código y, sin embargo, no deben limitarte. Debido a eso, Flask tiene algunas opciones de diseño que algunas personas podrían encontrar sorprendente o poco ortodoxa. Por ejemplo, Flask utiliza objetos locales de subproceso internamente para que no tenga que pasar objetos de la función a la función dentro de una solicitud para mantener threadsafe. Este enfoque es conveniente, pero requiere un contexto de solicitud válido para la inserción de dependencias o al intentar reutilizar código que usa un valor vinculado a la solicitud. El proyecto Flask es honesto acerca de los habitantes de subprocesos, no los oculta y llama en el código y la documentación donde se utilizan.

Desarrollar para la web con precaución

Ten siempre presente la seguridad cuando construyas aplicaciones web.

Si escribes una aplicación web, es probable que permitas a los usuarios registrarse y dejar sus datos en tu servidor. Los usuarios te están confiando datos. E incluso si usted es el único usuario que puede dejar datos en su aplicación, usted todavía quiere que esos datos se almacenen de forma segura.

Desafortunadamente, hay muchas maneras en que la seguridad de una aplicación web puede ser comprometida. Flask le protege contra uno de los problemas de seguridad más comunes de las aplicaciones web modernas: El cross-site scripting (XSS). A menos que marques deliberadamente el HTML inseguro como seguro, Flask y el motor de plantillas Jinja2 subyacente te tienen cubierto. Pero hay muchas más formas de causar problemas de seguridad.

La documentación le advertirá sobre los aspectos del desarrollo web que requieren atención a la seguridad. Algunos de estos aspectos de seguridad son mucho más complejos de lo que uno podría pensar, y todos nosotros a veces subestimamos la probabilidad de que una vulnerabilidad sea explotada - hasta que un atacante inteligente descubre la manera de explotar nuestras aplicaciones. Y no piense que su aplicación no es lo suficientemente importante como para atraer a un atacante. Dependiendo del tipo de ataque, lo más probable es que los bots automatizados estén buscando formas de llenar su base de datos con spam, enlaces a software malicioso y similares.

Flask no es diferente de cualquier otro framework en el sentido de que usted, el desarrollador, debe construir con precaución, vigilando que no se produzcan explotaciones al construir según sus necesidades.