Django 1.8 beta 2/1.7.6 发布,安全更新!
Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管 理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。是PythonWeb开 发框架开发学习的首选。
Django 1.8 beta 2/1.7.6 发布,此版本解决了 Django admin 的一个安全问题。建议所有用户尽快升级!此版本现已提供在 PyPI,下载:
-
Django 1.8 beta 2 (download Django 1.8b2 | 1.8b2 checksums)
-
Django 1.7.6 (download Django 1.7.6 | 1.7.6 checksums)
通常遇到这种安全更新,我们会事先通知某些关键的组织,但是这个公共披露的漏洞迫使他们尽快发布一个新版本,省略了往常的步骤。
问题:通过 ModelAdmin.readonly_fields 的属性进行 XSS 攻击,此问题被认证为:CVE-2015-2241。
Advisory:当从 Python 代码中调用模板过滤器的时候发生 HTML escaping。此问题是因为用户使用 linebreaksbr 函数导致,django.template.defaultfilters 有同样行为的函数如下:
-
join
-
linebreaksbr
-
linebreaks_filter
-
linenumbers
-
unordered_list
-
urlize
-
urlizetrunc
1.8b2 之前的版本使用 autoescape=None 作为默认的参数,直接从 Python 代码调用函数,输入是标记安全的,但是实际上会出现问题,可以创建一个 XSS attack vector。
Django 1.8b2 及其以上的版本都把这个选项默认为 True。此次 1.8 版本的更新可能会给一些用户带来兼容问题,但是最重要的是系统安全。此问题只会影响从 Python 代码直接调用模板过滤器的用户。
受影响的版本:
-
Django master 开发分支 (currently at pre-alpha status)
-
Django 1.8 (currently at beta status)
-
Django 1.7
解决方案:
更多内容请看发行说明。
Django 框架的核心组件有:
-
用于创建模型的对象关系映射
-
为最终用户设计的完美管理界面
-
一流的 URL 设计
-
设计者友好的模板语言
-
缓存系统