gpt4 book ai didi

apache - 将 HTTP 重定向到 HTTPS 或拒绝使用 HTTP?

转载 作者:可可西里 更新时间:2023-11-01 16:54:13 26 4
gpt4 key购买 nike

在 Apache HTTPD 服务器上配置,网络上的许多文章建议通过将所有 HTTP 请求(永久)重定向到 HTTPS 来强制执行 HTTPS 协议(protocol)。

以下是我所了解的当用户尝试访问同时支持 HTTP 和 HTTPS 的服务器时发生的情况:

  1. 客户端的用户代理(例如网络浏览器,但不仅限于此)向 http://my.domain.com 发送请求.
  2. 服务器在端口 80 上接收请求,并发送永久重定向(代码 301)到 https://my.domain.com .
  3. 客户的用户代理收到响应。给定状态代码,它向 https://my.domain.com 发送相同的请求.
  4. 服务器在端口 443 上接收请求并发回所需内容。

因此,如果请求包含敏感数据,在第 1 步和第 2 步之间,中间人可以在请求中以非加密方式恢复数据。

如果客户端使用网络浏览器,该浏览器会在缓存中保留 301 重定向,下次客户端使用 HTTP 发送请求时,它会自动使用 HTTPS 发送。

但是,如果客户端经常清除缓存怎么办?还是使用不存储永久重定向的网络浏览器以外的其他用户代理? 我们在这里不会失去 HTTPS 的优势吗?

具体示例:REST API,请求包含敏感数据。可以从任何 HTTP 客户端调用此 API(在线、嵌入软件或网站、独立)。

在这种情况下,是否可以更好地禁用服务器级别的 HTTP 支持以强制使用 HTTPS?

编辑 2017-11-14:

sys0dm1n 在下面告诉我有关 HSTS 的信息。但此机制提供的安全性完全取决于用户代理是否符合规范。

编辑 2017-11-15:

我在收到第一个答案后编辑我的帖子,以表达我的担忧。

最佳答案

要确保您的网站始终使用 https 来确保安全,一种方法是启用 HSTS

Automatically turn any insecure links referencing the web application into secure links.

要启用它,您需要在 vHost 配置中添加 header :

Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;"

确保 Header 模块已启用。

您可以按照说明here并将您的域添加到 Chrome 的 HTTP 严格传输安全 (HSTS) 预加载列表中。

This is a list of sites that are hardcoded into Chrome as being HTTPS only.

关于apache - 将 HTTP 重定向到 HTTPS 或拒绝使用 HTTP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47288048/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com