我有以下 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:
- 使用带 HTTP 压缩的 HTTPS
- 用户可以使用响应中返回的数据发出请求(例如使用搜索框)
- 无随机响应填充
因此,如果您访问恶意或受感染的网站,他们可能会读取您的银行帐号或 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/