为了提高安全性,我们希望https访问我们托pipemandrantory的所有客户站点,并在我们的条款和条件中保证这一点。
问题是,目前Apache web服务器被configuration为使用“redirect永久”Apache指令将所有http请求redirect到https请求。 从技术上讲,我们仍然使用不安全的http协议,即使它仅用于redirect,也不能通过http访问任何客户数据。
两个问题:
是否有阻塞80端口的缺点? 我能想到的唯一缺点是,客户被迫在他们的url前inputhttps://,而不是依靠自动redirect。
如果客户发送一个http POST请求,那么Apache httpd是否会在实际的POST数据已经传输到我们的服务器之前做出redirect响应,或者只有在接收到(未encryption的)客户数据之后才会发送redirect?
请指教。
在考虑您的意见后,我们将对networking设置进行以下更改:
通过使用这种设置,我们可以certificate没有未encryption的stream量到达或离开客户networking,同时仍然提供用户友好的自动redirect到https。
国际海事组织(IMO),你的“唯一的缺点”是非常大的。 没有人知道经常在URL中inputhttps:// 。 我怀疑有99%的普通用户会“去掉网站”。
一个HTTP POST确实会发送未encryption的数据。 它也会失败,因为redirect会导致它变成一个GET 。 也就是说,如果您已经redirect到HTTPS,那么人们几乎没有理由将HTTP POST发送到您的URL。
你可能真正想要的是HTTP严格的传输安全 ,它会告诉用户的浏览器,他们应该总是使用HTTPS为您的域名。 请参见局限性 – 对新用户的第一个请求不受其保护,但随后的所有请求都是(通过将您的域提交给主要浏览器供应商的STS预加载列表来解决)。
是否有阻塞80端口的缺点? 我能想到的唯一缺点是客户被迫在他们的url前面inputhttps://,而不是依靠自动redirect。
这正是离开港口80开放,用户友好的主要原因。 AFAIK大多数浏览器仍然默认使用http://当您input一个URL,当端口80被阻止时将导致一个错误消息。
只有真正的专注才会再次尝试使用https://但是几乎所有其他访问者都会去其他地方考虑您的网站是否已经停止运行。
如果客户发送一个http POST请求,那么Apache httpd是否会在实际的POST数据已经传输到我们的服务器之前用redirect来响应,或者只有在接收到(未encryption的)客户数据之后才会发送redirect?
redirect仅在客户端请求完成后发出,因此在数据以明文forms传输之后。
对于托pipe在您自己的服务器上的表单,您可以通过设置HTTP严格传输安全策略来阻止浏览器通过不安全的通道提交数据。
是的,删除redirect将导致重大问题。 新客户不会知道这一点,也不会有许多您希望允许访问的抓取工具。 您closures的威胁向量可以忽略不计。
POST数据可能会作为单个HTTP请求以明文forms发送,然后触发redirect。 但是,在大多数情况下,POST意味着一个表单。 有没有人与你的团队创build提交到你的网站的表单?