重定向http到https是一个坏主意?

时间:2010-12-06 10:12:14

标签: security ssl https

我正在阅读this page并且它说如果网站是SSL并且用户尝试通过常规http访问它,则应用程序不应将用户重定向到https。它应该阻止他。有人可以验证这个的有效性吗?这听起来不是一个好主意,我想知道将用户转发到https的真正风险是什么。它似乎背后没有任何技术原因,只是它是一种教育用户的好方法。

  

禁用对域的HTTP访问,   甚至不会将其重定向或链接到SSL。   只需告知用户这个网站是   不能通过HTTP访问,他们有   通过SSL访问它。

     

这是针对MITM的最佳做法   和phising攻击。这样你的   用户将接受教育   应用程序永远无法通过HTTP访   当他们遇到一个网络钓鱼   或他们会知道的MITM攻击   出了点问题。

     

保护你的最好方法之一   针对MITM攻击的应用程序   网络钓鱼攻击正在教育你的   用户。

6 个答案:

答案 0 :(得分:41)

包含会话ID cookie的HTTP请求受到会话劫持攻击。重要的是,如果您允许HTTP并重定向到HTTPS,那么cookie将被标记为安全。

我看不出任何技术原因导致HTTP需要被完全阻止,并且许多站点都将HTTP转发到HTTPS。执行此操作时,强烈建议实施HTTP严格传输安全性(HSTS),这是一种Web安全机制,声明浏览器仅使用HTTPS连接。

通过指定响应头(例如Strict-Transport-Security: max-age=31536000)来实现HSTS。符合用户代理会自动将不安全的链接转换为安全链接,从而降低中间人攻击的风险。另外,如果存在证书不安全的风险,例如,如果无法识别根权限,则会显示错误消息并且不显示响应。

答案 1 :(得分:22)

从HTTP到HTTPS实际上是一个不太好的主意。例如,攻击者可以使用ssl strip之类的工具进行中间人攻击。 要解决此问题,您应该使用HSTS protocol。它得到了所有主流浏览器的支持(Internet Explorer,它是最新的采用者,从IE12开始支持它),并被许多顶级网站(例如Paypal,Google)使用。

答案 2 :(得分:5)

在从HTTP重定向到HTTPS时,我没有看到任何技术风险(除了我的答案结尾更新中的那个)。例如,gmail和yahoo邮件正在这样做。您可以使用HTTP调试工具(如Fiddler)来检查,在那里您可以清楚地看到服务器返回的302重定向响应。

我认为从可用性的角度来看,阻塞是个坏主意。很多时候用户在浏览器中输入地址而没有指定HTTP或HTTPS。例如,我通过输入“mail.google.com”来访问gmail,默认为“http://mail.google.com”,并自动重定向到“https://mail.google.com”。如果没有自动重定向,我将始终输入完整的地址。

我同意所引用的文章,即HTTPS是针对MITM攻击的最佳方法,但我不同意这是针对网络钓鱼的最佳做法。用户教育确实是防止网络钓鱼攻击的一个关键因素(用户必须检查他们是否从正确的域访问网站),但绝不会通过阻止HTTP重定向到HTTPS来进行教育。

<强>更新 @Pedro和@Spolto是对的。必须特别注意敏感cookie(如会话或身份验证cookie),这些cookie确实应标记为安全,以便它们只能通过HTTPS传输。我错过了那一个。给你们两个+1。

答案 3 :(得分:4)

我刚刚注意到这个问题,但我已经写了几个类似问题的答案:

我不认为从HTTP重定向到HTTPS必然是有害的,但这应该是有条不紊的。重要的是,您不应该依赖这些自动重定向在开发阶段出现。它们最多应该用于在浏览器中输入地址的用户。

用户的责任也完全在于他们在预期时使用HTTPS(以及在没有警告的情况下验证证书)进行检查。

从HTTP切换到HTTPS的实际风险是,如果您选择保留会话,则可以可靠地信任切换前所执行的操作。您网站的流程和流程应考虑到这一点。

例如,如果您的用户浏览您的购物网站并使用HTTP将各种商品添加到购物车中,并且您计划使用HTTPS获取付款详细信息,则还应该让用户使用HTTPS确认其购物篮的内容。 / p>

此外,从HTTP切换到HTTPS时,您可能必须重新验证用户并丢弃纯HTTP会话标识符(如果有)。否则,攻击者可能也可以使用该cookie移动到该站点的HTTPS部分,并可能冒充合法用户。

答案 4 :(得分:3)

从技术角度来看,除了HTTPS之外,IMO没有任何副作用。

从UX / UI的角度来看,建议使用点击或延迟重定向,提供可视指示,让人们首先输入HTTPS URL,因为重定向本身会受到MITM攻击。然而,并没有多少HTTPS网站这样做,因为它们提供视觉效果,要求人们在其HTTPS页面上的浏览器中查找锁定图标。

答案 5 :(得分:0)

这是一个完全可以接受的“bootstrap”方法 - 301从HTTP重定向到HTTPS,然后在HTTPS端返回Strict-Transport-Security标头,以便将浏览器锁定为HTTPS。

完全阻止HTTP将是一个主要的可用性问题,因为在没有协议指示符的情况下输入URL时,Web浏览器将尝试HTTP协议,除非浏览器支持HSTS并且在浏览器缓存中找到HSTS令牌或预载列表。