nginx 强制 http 标头覆盖

nginx 强制 http 标头覆盖

我们网站上的一些 http 标头设置错误,大约持续了一天,这导致我们的一些子域出现问题。解决此故障非常困难,因为我们发送的标头有效期很长(182.5 天 (!)),因此我们无法要求每个用户重置其整个浏览器缓存。

是否可以设置 nginx vhost 来强制覆盖所有旧的 http 标头?这样,如果用户再次访问主站点,他就会获得新的正确标头?

我们发送的标头:

  add_header Strict-Transport-Security "max-age=15768000; preload;";
  add_header X-Content-Type-Options nosniff;
  add_header X-Frame-Options "SAMEORIGIN";
  add_header X-XSS-Protection "1; mode=block";
  add_header X-Robots-Tag none;

答案1

这不是服务器端的问题。这就是 Strict-Transport-Security 的工作方式,如果不是这样,它就毫无用处了——浏览器会记住此设置,一旦访问者看到它们,您就无能为力了。解决方案是要非常小心,除非您真的想这样做,否则不要设置此标头。

也就是说,有一个简单的解决方法:通过 SSL 提供一切服务,这样就不再是问题了。

相关内容