针对高级程序员的前言

Flask 的本地线程对象

Flask中的一个设计原则之一是简单地任务不应当使用很多的代码,应当可以简单地完成,但同时也不应当把程序员限制得太死。因此,Flask有一些设计思路,有些人可能会觉得惊讶或不正统。例如,flask在内部使用线程本地对象,这样就不必在同一个请求中因为线程安全的原因,而函数之间传递对象。这种方法很方便,但是当用于依赖注入或者当尝试重新使用了与请求挂钩的值的代码时,则需要一个合法的环境。flask项目对本地线程是直言不讳的,没有一点隐藏的意思,并且在使用本地线程时在代码中进行了标识和说明。

做网络开发时要谨慎。

构建Web应用程序时,请始终牢记安全性。

如果你开发了一个网络应用,那么可能会让用户注册并把他们的数据保存在服务器上。 用户把数据托付给了你。哪怕你的应用只是给自己用的,你也会希望数据完好无损。

不幸的是,有很多的方法可以攻击网络应用的安全性。Flask 可以防御 现代 Web 应用最常见的安全攻击:跨站代码攻击( XSS )。Flask 和 下层的 Jinja2 模板引擎会保护你免受这种攻击,除非故意把不安全的HTML代码放进来。但是攻击的方法依然还有很多。

文档将警告您有关需要注意安全性的Web开发方面。其中一些安全问题比人们想象的要复杂得多,我们有时都低估了漏洞被利用的可能性——直到一个聪明的人利用这个弱点来攻击我们的程序。不要认为你的应用程序不够重要,不足以吸引攻击者。根据攻击类型的不同,自动僵尸程序可能正在探索如何用垃圾邮件、恶意软件链接等填充你的数据库。

Flask与任何其他框架都没有区别,因为开发人员必须谨慎地构建,在构建到您的需求时要注意漏洞利用。