我应该使用 SSL 在 Nginx 服务器上为 React 应用程序启用 Gzip 吗?

Raj*_*rma 6 performance frontend gzip nginx reactjs

我有一个构建大小非常大的 React 应用程序,它部署在带有 SSL 的 Nginx 服务器上。我了解了一些关于 GZip 以及它如何提高网站性能的知识。但我也开始知道将 GZip 与 SSL 一起使用是不安全的。在 Nginx 中默认为 HTML 文件启用 GZip。我是否应该为 Javascript 和 CSS 等其他文件启用它以提高性能?

Pra*_*rma 6

当你说

将 GZip 与 SSL 一起使用是不安全的

我假设您在谈论Breach Attack。对于压缩响应的破坏攻击要成功,需要满足两个条件:

  1. 在 HTTP 响应正文中反映用户输入
  2. 在 HTTP 响应正文中反映秘密(例如 CSRF 令牌)

当您发送压缩的 js/css 文件作为响应时,您通常不会在响应中反映用户输入。这意味着调用 js/css 文件 url 只会返回该文件。

此外,您通常不会在响应中返回任何敏感数据以及压缩的 js/css 文件。

所以是的,对 js/css 资产使用 Gzip 压缩是完全安全的。静态响应不易受到这种攻击。

  • 谢谢您的帮助。我还有一个疑问,nginx.config 文件中的 gzip_types 中还有一个“application/json”类型。我应该保留它还是从这里删除它,因为你说只对静态资产进行 gzip 是安全的? (2认同)