什么是HSTS安全头中的max-age属性?

时间:2018-01-29 09:12:08

标签: http security https

HSTS中max-age的目的是什么?如:

Strict-Transport-Security: max-age=100

如果值超过100,会发生什么?

是否有设置max-age的最佳做法?

谢谢!

1 个答案:

答案 0 :(得分:3)

根据RFC 6797的定义,有一些语义上不同的方式来发送HSTS标头:

Strict-Transport-Security: max-age=31536000

HSTS政策仅适用于发布HSTS主机的HSTS主机域,并且有效期为一年。

Strict-Transport-Security: max-age=31536000; includeSubDomains

HSTS政策适用于发布主机及其子域的域名,并且有效期为一年。

Strict-Transport-Security: max-age=0

指示浏览器删除整个HSTS策略。

HSTS最佳做法

HSTS有一些简单的最佳实践:

  1. 最强大的保护是确保所有请求的资源仅使用具有格式良好的HSTS标头的TLS。 Qualys建议在目标域中的所有HTTPS资源上提供HSTS标头。
  2. 建议将max-age指令的值指定为大于10368000秒(120天),理想情况下指定为31536000(一年)。网站的目标应该是提高最大年龄值,以确保当前域和/或子域的长期安全性得到加强。
  3. RFC 6797,第14.4节主张Web应用程序必须尽可能在策略定义中添加includeSubDomain指令。该指令的存在确保HSTS策略应用于发布主机及其所有子域的域,例如, example.comwww.example.com
  4. 应用程序永远不应该在纯文本HTTP标头上发送HSTS标头,因为这样做会使连接容易受到SSL剥离攻击。
  5. 建议不要通过元标记的http-equiv属性提供HSTS策略。根据HSTS RFC 6797,用户代理不会对接收内容上的元素注意http-equiv =“Strict-Transport-Security”属性。
  6. cheat sheet from OWASP可能会在将来帮助您。