nn4*_*n4l 1 security apache-2.2
为了提高安全性,我们希望通过 https 访问我们托管的所有客户站点,并在我们的条款和条件中保证这一点。
问题是当前 Apache 网络服务器配置为使用“重定向永久”Apache 指令将所有 http 请求重定向到 https 请求。从技术上讲,我们仍在使用不安全的 http 协议,尽管它仅用于重定向,并且无法通过 http 访问任何客户数据。
两个问题:
完全阻塞80端口有什么坏处吗?我能想到的唯一缺点是客户被迫在其 url 前输入 https://,而不是依赖自动重定向。
如果客户发送 http POST 请求,Apache httpd 会在实际 POST 数据传输到我们的服务器之前以重定向响应,还是仅在收到(未加密的)客户数据后才发送重定向?
请指教。
在考虑您的意见后,我们将对我们的网络设置进行以下更改:
通过使用此设置,我们可以证明没有未加密的流量到达或离开客户网络,同时仍然提供用户友好的自动重定向到 https。
IMO,您的“唯一劣势”是一个很大的劣势。我认识的人中没有人https://经常输入 URL。我怀疑 99% 的普通用户会说“嗯,网站关闭了”。
HTTPPOST确实会发送未加密的数据。它也会失败,因为重定向会导致它变成GET. 也就是说,POST如果您已经重定向到 HTTPS ,那么人们几乎没有理由将 HTTP发送到您的 URL。
您可能真正想要的是HTTP Strict Transport Security,它会告诉用户的浏览器他们应该始终为您的域使用 HTTPS。查看限制 - 对新用户的第一个请求不受它保护,但所有后续请求都受保护(这可以通过将您的域提交到主要浏览器供应商的 STS 预加载列表来解决)。
完全阻塞80端口有什么坏处吗?我能想到的唯一缺点是客户被迫在其 url 前输入 https://,而不是依赖自动重定向。
这正是保持 80 端口开放、用户友好的主要原因。AFAIK 大多数浏览器在您输入 URL 时仍默认使用 http://,这将在端口 80 被阻止时导致错误消息。
只有真正专注的人会再次尝试使用 https://,但几乎所有其他访问您网站的访问者都可能会认为您的网站已关闭而前往其他地方。
如果客户发送 http POST 请求,Apache httpd 会在实际 POST 数据传输到我们的服务器之前以重定向响应,还是仅在收到(未加密的)客户数据后才发送重定向?
Redirect 仅在客户端请求完成后发出,因此在数据以明文形式传输之后。
对于托管在您自己的服务器上的表单,您可以通过设置HTTP 严格传输安全策略来防止浏览器通过不安全的通道提交数据。