我正在尝试运行一个 HTTPS 站点,同时考虑到某些请求最初会尝试通过纯 HTTP 进行非安全连接的可能性。我可以成功地将 http://
重定向到 https://
,但是这种方法似乎将临时用户暴露在一个 Not Acceptable 漏洞中:因为 URI 和主机地址必须是在服务器知道是否/向(重新)定向请求之前传输,窃听者可以查看初始 HTTP 请求/响应 header 。用户可能会被窃听者欺骗,例如,窃听者读取 http://
请求 header 并提供一个看起来与用户期望看到的页面非常相似的页面。
服务器能否采取中间操作,例如在客户端发送请求 header 之前将 HTTP 连接转移到 HTTPS,以便请求/响应 header 的传输与内容本身的传输一样受到保护?如果连接最初是不安全的,是否无法保护客户端和服务器之间的 header 传输?
最佳答案
您应该查看 HTTP 严格传输安全 (HSTS)。这将允许您的网站指示 modern browsers它应该只通过 HTTPS 加载。
这仍然会让您的用户在第一次访问您的网站时容易受到中间人攻击 (TOFU)。您只能通过将您的网站放在 preloaded HSTS list 上来缓解这种情况。 .
关于security - 在重定向到 HTTPS 之前,HTTP 请求 header 是否可保护?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34960962/