跳转至

Insecure HTTP Header Setting: HTTP Strict Transport Security (HSTS)

不安全的 HTTP 标头配置:HTTP 严格传输安全 (HSTS)

描述

HTTP 严格传输安全 (HSTS) 是一种 Web 安全策略机制,Web 服务器通过它声明兼容的用户代理(如 Web 浏览器)必须仅使用安全 (HTTPS) 连接与其进行交互。服务器通过名为“Strict-Transport-Security”的 HTTP 响应标头字段将 HSTS 策略传达给用户代理。HSTS 策略指定了用户代理必须仅以安全方式访问服务器的时间段。

当 Web 应用程序向用户代理发出 HSTS 策略时,兼容的用户代理的行为如下:

  • 自动将引用 Web 应用程序的任何不安全 (HTTP) 链接转换为安全 (HTTPS) 链接。(例如,在访问服务器之前,http://example.com/some/page/ 将被修改为 https://example.com/some/page/。)
  • 如果无法确保连接的安全性(例如,服务器的 TLS 证书是自签名的),用户代理将显示错误消息并且不允许用户访问 Web 应用程序。

建议

配置您的 Web 服务器以将 HTTP 请求重定向到 HTTPS。

例如,对于 Apache,您应该在 httpd.conf 中进行修改。有关更多配置,请参阅外部参考部分。

# 加载模块
LoadModule headers_module modules/mod_headers.so

# 将所有 HTTP 重定向到 HTTPS (可选)
<VirtualHost *:80>
       ServerAlias *
       RewriteEngine On
       RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [redirect=301]
</VirtualHost>

# HTTPS 主机配置
<VirtualHost *:443>
      # 使用 HTTP 严格传输安全 (HSTS) 强制客户端仅使用安全连接
      Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

      # 进一步的配置在此处进行
      [...]
</VirtualHost>

链接

标准

  • OWASP_ASVS_L1:
    • V14_4_5
  • OWASP_ASVS_L2:
    • V14_4_5
  • OWASP_ASVS_L3:
    • V14_4_5
  • PCI_STANDARDS:
    • REQ_2_2
    • REQ_3_6
    • REQ_3_7
    • REQ_4_2
    • REQ_6_2
    • REQ_6_3
    • REQ_6_4
    • REQ_11_3
  • HIPAA_CONTROLS:
    • SECURITY252
    • SECURITY212
    • SECURITY213