Sco*_*les 7 security django django-middleware
我希望在 Django 中启用文本压缩。的性能的文档引用的GZip中间件作为文本压缩当前的解决方案。但是,它带有一个严厉的警告:
GZip中间件
压缩所有现代浏览器的响应,节省带宽和传输时间。请注意,GZipMiddleware 目前被认为是一种安全风险,并且容易受到使 TLS/SSL 提供的保护无效的攻击。有关更多信息,请参阅 GZipMiddleware 中的警告。
几个问题:
POST并且启用了 CSRF 中间件,我是否安全?再次,通过文档:
Django 1.10 中的更改:在旧版本中,Django 的 CSRF 保护机制在使用压缩时容易受到 BREACH 攻击。情况不再如此,但您仍应注意不要以这种方式泄露您自己的秘密。
我绝对建议查看BREACH 论文,它简短而清晰。
正如那里所指出的:
为了使攻击成功,需要做几件事。要容易受到此侧信道的攻击,Web 应用程序必须:
- 从使用 HTTP 级压缩的服务器提供服务
- 在 HTTP 响应正文中反映用户输入
- 在 HTTP 响应正文中反映秘密(例如 CSRF 令牌)
因此,如果您没有在响应正文中反映用户信息和机密,那么您就不会受到攻击。
如果是,那么任何文本压缩方案都不太可能奏效。这种攻击利用了文本压缩的基本特性:重复的文本应该占用更少的空间。有可能存在不易受到攻击的压缩方案,但您肯定需要看到一些保证。
由于此攻击基于特定的应用程序功能,而不是框架漏洞,因此 Django 无法确保应用程序是“安全的”。Django可以做的是保护它提供支持的易受 BREACH 攻击的主要秘密:CSRF 令牌。从 1.10 版开始,Django 使用了论文中建议的一种缓解措施(参见第 3.4 节)来保护它免受这种攻击:
为了防止 BREACH 攻击,令牌不仅仅是秘密;一个随机的盐被预先添加到秘密并用来打乱它。
总结一下:如果您需要保护的唯一秘密是 Django 的 CSRF 令牌,并且您使用的是 Django 1.10 或更高版本,那么可以合理地得出结论,您可以使用 gzip 并且仍然可以免受 BREACH 的影响。
| 归档时间: |
|
| 查看次数: |
1386 次 |
| 最近记录: |