永久HTTPS重定向还是HTTP登陆?

Permanent HTTPS redirect or HTTP landing?

什么是更好的设置?

  1. 将所有 HTTP 流量永久重定向到 HTTPS。
    • (+) 浏览器会在书签、历史记录和缓存中记住 "the right thing"。
    • (-) 并非所有 wifi 支付墙都能很好地支持 HTTPS。
  2. 两个版本都带有到 HTTPS 的绝对链接。
    • (-) 浏览器可能会记住错误的内容,因为人们不输入 https。
    • (-) 认证区域需要屏蔽(普通认证)
    • (+) 与 public wifi 支付墙配合得很好(仅当人们输入 http 时,但现在更有可能因为浏览器会记住用户输入的 http)。

我强烈倾向于解决方案 1,但这只是因为它感觉不错。是否有压倒性的令人信服的论据支持其中之一?搜索引擎和移动设备如何响应这两种设置?

我认为答案是"it depends"。如果您不走这条路,还需要遵循一些重要的安全措施。

如果您希望站点上的每个页面都被加密并且不想允许任何未加密的网络流量,那么 1 是更好的设置;或将实现您的目标的 "only" 设置(另外,为所有 https 响应发送 HSTS header)。

我有几个站点无条件地为 所有 URL 通过 http 访问发送 301 header,并且没有遇到问题。在 2017 年,一旦用户通过热点进行身份验证,所有受付费专区保护的 WiFi 热点应该不会出现 HTTPS 站点问题。

如果您不想或不能加密每个页面(原因可能包括资源有限、缓存层或某些页面无法从加密中受益),那么只需要某些页面使用 HTTPS 就可以了资源(登录表格、结帐、付款表格、帐户管理等)。请牢记安全措施(任何包含表单的页面都应通过 HTTPS 提供,以防止篡改表单,并且您应该 link 表单到 https links)。

如果您想鼓励使用 https 而不是明确强制,您可以允许对站点页面进行未加密访问,但在内部,link 一切都到 https。因此,如果一个人进入 http 页面,所有 links 都指向 https,因此无论他们点击什么都会加密 session 以供将来访问(注意,如果您发送 HSTS headers在这里,浏览器将始终使用 https。

所以就我个人而言,我会选择 #1 - 全面强制使用 https。

这里有一些有用的地方可以开始阅读: