security - gzip 一切的危险是什么?

标签 security nginx compression gzip

我有以下 nginx conf:

gzip on;
gzip_disable "msie6";

gzip_vary on;
gzip_comp_level 6;
gzip_min_length  1000;
gzip_proxied any;
gzip_types "*";
gzip_buffers 16 8k;

我曾经有 gzip_types gzip_types text/plain text/css application/json application/x-javascript text/javascript text/xml application/xml application/xml+rss image/x-icon application/vnd.api +json;,但根据 PageSpeed 这对我不起作用出于某种原因。

我的问题是 - 对所有内容进行 gzip 压缩有什么缺点吗?当然把js、css、html压缩一下就好了。压缩 json、图像和其他媒体文件也可能很好。

但是,我们在此连接上代理 websockets。我想 min_length 位可以解决大部分问题,但是那里会出现什么问题吗?

此外,压缩私有(private)数据是否存在任何安全问题? This相关的 SO 提到了 CRIME,这似乎表明压缩包含 secret 和可变数据的响应是危险的。我也在阅读 BREACH这似乎是沿着同样的路线。我不是安全专家,所以我不确定对此有多担心,但我们确实使用 Django,截至 2013 年 8 月,他们的建议是完全禁用 gzip。

最佳答案

在以下情况下可能会出现 BREACH:

  1. 使用带 HTTP 压缩的 HTTPS
  2. 用户可以使用响应中返回的数据发出请求(例如使用搜索框)
  3. 无随机响应填充

因此,如果您访问恶意或受感染的网站,他们可能会读取您的银行帐号或 CSRF token 。

无论如何,您可以使用 HTTP 分块编码来填充您的响应。 https://qualys.jive-mobile.com/#jive-document?content=%2Fapi%2Fcore%2Fv2%2Fposts%2F2211

关于security - gzip 一切的危险是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31895969/

相关文章:

Php json_encode 在 2 个不同的服务器上为同一对象返回不同的值

android - 减小图像的文件大小

security - Grails项目登录插件

amazon-web-services - 使用自定义 header 将 CloudFront 限制为特定 IP 范围的 S3 静态网站

security - 在 POSTGRES 数据库中为 'postgres' 用户添加密码是个好主意吗?

mysql - Wordpress ==> SSL ==> MySQL 这个配置可行吗?

reactjs - React.js 应用程序显示 404 未在 nginx 服务器中找到

php - 通过 php 输入处理上传时减少 PHP 中的内存消耗

json - 带有 Spring MVC 的 Tomcat 不压缩响应

c# - 在.net core中创建 "shared zlib context"