我正在使用flask,Werkzeug和jinja2开发一个Web应用程序。我对这些术语非常困惑,并想知道术语的含义以及它们与CGI环境变量的相互关系。什么是全局变量g以及它与应用程序上下文和请求上下文的关系。
此外,由于我不太了解开发网络应用程序(我是第一次这样做)的任何其他语言,所以如果有人可以提供参考或让我了解请求的方式,还有另一个请求处理,我的意思是当请求到达Web应用程序时会发生什么。
此外,如果我没有使用任何openID提供程序登录用户进入我的网站,我该如何确保密码安全。我应该使用任何框架吗?
答案 0 :(得分:2)
对于请求上下文,请查看下一个问题:What is the purpose of Flask's context stacks?。最好花一点时间来理解它,因为它是基本的框架主体。
用户数据存储的许多方法都是安全的,数据库中最简单的商店用户和密码为modern_crypto_hash(password + salt)
,短密码接受限制,并使用某些内容记录为Flask-Login
或Flask-Principal
。为避免SQL注入,您可以使用任何ORM,例如SqlAlchemy
。为了避免XSS通过POST发送数据更改并添加csrf
令牌,WTForms
在那里很好。为了避免html标签注入,默认情况下已使用内置模板系统,并且不会不安全地插入用户内容。也很有用https
。