python - Flask 和 WerkZeug 中的应用程序上下文和请求上下文是什么?

标签 python web-services werkzeug

我正在使用 flask、Werkzeug 和 jinja2 开发网络应用程序。我对这些术语非常困惑,想知道这些术语的含义以及它们与 CGI 环境变量的相互关系。什么是全局变量g以及它与应用程序上下文和请求上下文的关系。

此外,由于我对开发网络应用程序了解不多(我是第一次这样做)任何其他语言,所以如果有人可以提供引用或让我了解请求的处理方式,还有另一个请求,我的意思是当请求到达网络应用程序时会发生什么。

此外,如果我不使用任何 openID 提供商来让用户登录我的网站,我该如何确保密码安全。我应该为此使用任何框架吗?

最佳答案

为了更好地了解请求上下文,请查看下一个问题:What is the purpose of Flask's context stacks? .最好花一点时间来理解它,因为它是基本的框架原则。

许多用户数据存储方法都是安全的,最简单的将用户和密码存储在数据库中,作为 modern_crypto_hash(password + salt) 限制接受短密码,并使用一些东西作为 进行日志记录Flask-LoginFlask-Principal。为避免 SQL 注入(inject),您可以使用任何 ORM,例如 SqlAlchemy。为了避免 XSS 通过 POST 发送数据更改并添加 csrf token ,WTForms 在那里很好。为了避免 html 标签注入(inject),默认情况下已经使用内置模板系统,并且不要不安全地将用户内容插入页面。也可以使用 https

关于python - Flask 和 WerkZeug 中的应用程序上下文和请求上下文是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22917472/

相关文章:

python - Python 生成器中的奇怪错误

python - 如何在 Tensorflow 中有效使用 tf.bucket_by_sequence_length?

android - 如何检查应用程序是否已从 android/Iphone 设备上卸载

python - 如何从应用程序代码访问 Gunicorn 的配置参数?

python - 类型错误 : A Future or coroutine is required

python - 合并一列列表上的两个数据框

java - 为高度非规范化的 NoSQL 数据库设计唯一键(主键)

.net - WCF 客户端测试人员和客户端凭据

python - 为什么当 View 引发异常时只调用一个 Flask teardown_request 函数?