Tornado ’ 目录归档

【漏洞预警】Tornado某缺陷可能造成文件读取漏洞 (updated @ 2015-03-04)

昨晚,wooyun上有用户报告Tornado框架某缺陷可能造成文件读取漏洞。该用户没有在公开描述中提到更多的信息。

1. 影响版本
起始版本未知,至少影响3.1及以上版本。

2. 漏洞描述
可能造成不应被读取的文件被读取。
洞主没有明确说明被读取的文件需要满足何种条件。
根据我的猜测,应为全平台,但文件名需满足特定条件(见第4节)。

3. 网友观点
阅读全文

Tornado 4.0发布

当地时间2014年7月15日,Tornado发布了其4.0版本。

下载链接:https://pypi.python.org/packages/source/t/tornado/tornado-4.0.tar.gz
源码:https://github.com/tornadoweb/tornado

该版本的更新内容如下:

  • tornado.web.stream_request_body装饰器允许在限定的内存使用情况下上传大文件。
  • 协程变得更快,并且通过Tornado自身的使用更加广泛。更多的方法将返回Futures,包括IOStream中的多数方法以及RequestHandler.flush
  • 许多user-overridden方法现在允许返回Future来进行流量控制。
  • HTTP相关的代码现在被tornado.httpservertornado.simple_httpclienttornado.wsgi模块所共享,以更加一致地支持诸如chunked、gzip编码的功能。除了过去的single-callback接口以外,HTTPServer现在使用了定义在tornado.httputil中的新的委托接口。
  • 新的模块tornado.tcpclient使用非阻塞的DNS、SSL握手创建TCP连接,并且支持了IPV6。

向后兼容及其他更新记录参见官方文档

《Introduction to Tornado》中文翻译计划——第八章:部署Tornado

本文为《Introduction to Tornado》中文翻译,将在https://github.com/alioth310/itt2zh上面持续更新,本文内容可能不是最新状态,请在GitHub上获得最新版本。

本文也可在http://demo.pythoner.com/itt2zh上进行格式化的预览。

第八章:部署Tornado

到目前为止,为了简单起见,在我们的例子中都是使用单一的Tornado进程运行的。这使得测试应用和快速变更非常简单,但是这不是一个合适的部署策略。部署一个应用到生产环境面临着新的挑战,既包括最优化性能,也包括管理独立进程。本章将介绍强化你的Tornado应用、增加请求吞吐量的策略,以及使得部署Tornado服务器更容易的工具。
阅读全文

《Introduction to Tornado》中文翻译计划——第七章:外部服务认证

本文为《Introduction to Tornado》中文翻译,将在https://github.com/alioth310/itt2zh上面持续更新,本文内容可能不是最新状态,请在GitHub上获得最新版本。

本文也可在http://demo.pythoner.com/itt2zh上进行格式化的预览。

第七章:外部服务认证

第六章的例子像我们展示了如何使用安全cookies和tornado.web.authenticated装饰器来实现一个简单的用户验证表单。在本章中,我们将着眼于如何对第三方服务进行身份验证。流行的Web API,比如Facebbok和Twitter,使用OAuth协议安全验证某人的身份,同时允许他们的用户保持第三方应用访问他们个人信息的控制权。Tornado提供了一些Python mix-in来帮助开发者验证外部服务,既包括显式地支持流行服务,也包括通过通用的OAuth支持。在本章中,我们将探讨两个使用Tornado的auth模块的示例应用:一个连接Twitter,另一个连接Facebook。
阅读全文

《Introduction to Tornado》中文翻译计划——第六章:编写安全应用

本文为《Introduction to Tornado》中文翻译,将在https://github.com/alioth310/itt2zh上面持续更新,本文内容可能不是最新状态,请在GitHub上获得最新版本。

本文也可在http://demo.pythoner.com/itt2zh上进行格式化的预览。

第六章:编写安全应用

很多时候,安全应用是以牺牲复杂度(以及开发者的头痛)为代价的。Tornado Web服务器从设计之初就在安全方面有了很多考虑,使其能够更容易地防范那些常见的漏洞。安全cookies防止用户的本地状态被其浏览器中的恶意代码暗中修改。此外,浏览器cookies可以与HTTP请求参数值作比较来防范跨站请求伪造攻击。在本章中,我们将看到使防范这些漏洞更简单的Tornado功能,以及使用这些功能的一个用户验证示例。
阅读全文

《Introduction to Tornado》中文翻译计划——第五章:异步Web服务

本文为《Introduction to Tornado》中文翻译,将在https://github.com/alioth310/itt2zh上面持续更新,本文内容可能不是最新状态,请在GitHub上获得最新版本。

本文也可在http://demo.pythoner.com/itt2zh上进行格式化的预览。

第五章:异步Web服务

到目前为止,我们已经看到了许多使Tornado成为一个Web应用强有力框架的功能。它的简单性、易用性和便捷性使其有足够的理由成为许多Web项目的不错的选择。然而,Tornado受到最多关注的功能是其异步取得和提供内容的能力,它有着很好的理由:它使得处理非阻塞请求更容易,最终导致更高效的处理以及更好的可扩展性。在本章中,我们将看到Tornado异步请求的基础,以及一些推送技术,这种技术可以使你使用更少的资源来提供更多的请求以编写更简单的Web应用。
阅读全文

《Introduction to Tornado》中文翻译计划——第四章:数据库

本文为《Introduction to Tornado》中文翻译,将在https://github.com/alioth310/itt2zh上面持续更新,本文内容可能不是最新状态,请在GitHub上获得最新版本。

本文也可在http://demo.pythoner.com/itt2zh上进行格式化的预览。

第四章:数据库

在本章中,我们将给出几个使用数据库的Tornado Web应用的例子。我们将从一个简单的RESTful API例子起步,然后创建3.1.2节中的Burt’s Book网站的完整功能版本。

本章中的例子使用MongoDB作为数据库,并通过pymongo作为驱动来连接MongoDB。当然,还有很多数据库系统可以用在Web应用中:Redis、CouchDB和MySQL都是一些知名的选择,并且Tornado自带处理MySQL请求的库。我们选择使用MongoDB是因为它的简单性和便捷性:安装简单,并且能够和Python代码很好地融合。它结构自然,预定义数据结构不是必需的,很适合原型开发。
阅读全文

《Introduction to Tornado》中文翻译计划——第三章:模板扩展

本文为《Introduction to Tornado》中文翻译,将在https://github.com/alioth310/itt2zh上面持续更新,本文内容可能不是最新状态,请在GitHub上获得最新版本。

本文也可在http://demo.pythoner.com/itt2zh上进行格式化的预览。

第三章:模板扩展

在第二章中,我们看到了Tornado模板系统如何简单地传递信息给网页,使你在插入动态数据时保持网页标记的整洁。然而,大多数站点希望复用像header、footer和布局网格这样的内容。在这一章中,我们将看到如何使用扩展Tornado模板或UI模块完成这一工作。

阅读全文

《Introduction to Tornado》中文翻译计划——第二章:表单和模板

本文为《Introduction to Tornado》中文翻译,将在https://github.com/alioth310/itt2zh上面持续更新,本文内容可能不是最新状态,请在GitHub上获得最新版本。

本文也可在http://demo.pythoner.com/itt2zh上进行格式化的预览。

第二章:表单和模板

在第一章中,我们学习了使用Tornado创建一个Web应用的基础知识。包括处理函数、HTTP方法以及Tornado框架的总体结构。在这章中,我们将学习一些你在创建Web应用时经常会用到的更强大的功能。

和大多数Web框架一样,Tornado的一个重要目标就是帮助你更快地编写程序,尽可能整洁地复用更多的代码。尽管Tornado足够灵活,可以使用几乎所有Python支持的模板语言,Tornado自身也提供了一个轻量级、快速并且灵活的模板语言在tornado.template模块中。
阅读全文

《Introduction to Tornado》中文翻译计划——第一章:引言

在几天前的《Introduction to Tornado 读书笔记》一文中,我曾经提到近期将会把这本书翻译成中文,一方面能够方便英语不太好的同学学习Tornado,另一方面也是提高一下自己的英语水平。现在这个计划正在进行中。翻译会在https://github.com/alioth310/itt2zh上面持续更新,博客中的文章不能保证为最新状态。本人的英语不算很好,可能会有很多地方翻译不准确,还望大家多批评指正(博客或GitHub中均可)。

本文也可在http://demo.pythoner.com/itt2zh上进行格式化的预览。

本文是书中的第一章:引言部分。

在过去的五年里,Web开发人员的可用工具实现了跨越式地增长。当技术专家不断推动极限,使Web应用无处不在时,我们也不得不升级我们的工具、创建框架以保证构建更好的应用。我们希望能够使用新的工具,方便我们写出更加整洁、可维护的代码,使部署到世界各地的用户时拥有高效的可扩展性。
阅读全文

return top