重定向http到https是一个坏主意?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重定向http到https是一个坏主意?相关的知识,希望对你有一定的参考价值。
我正在阅读this page并且它说如果一个站点是SSL并且用户试图通过常规http访问它,则应用程序不应该将用户重定向到https。它应该阻止他。有人可以验证这个的有效性吗?这听起来不是一个好主意,我想知道将用户转发到https的真正风险是什么。它似乎背后没有任何技术原因,只是它是一种教育用户的好方法。
禁用对域的HTTP访问,甚至不重定向或将其链接到SSL。只是告知用户这个网站无法通过HTTP访问,他们必须通过SSL访问它。
这是针对MITM和网络钓鱼攻击的最佳做法。通过这种方式,您的用户将接受教育,即应用程序永远无法通过HTTP访问,当他们遇到网络钓鱼或MITM攻击时,他们会知道出现了问题。
保护您的应用程序免受MITM攻击和网络钓鱼攻击的最佳方法之一是教育您的用户。
包含会话ID cookie的HTTP请求受到会话劫持攻击。重要的是,如果您允许HTTP并重定向到HTTPS,那么cookie将被标记为安全。
我无法看到为什么HTTP需要被完全阻止的任何技术原因,并且许多站点都将HTTP转发到HTTPS。执行此操作时,强烈建议实施HTTP严格传输安全性(HSTS),这是一种Web安全机制,声明浏览器仅使用HTTPS连接。
通过指定响应头(例如Strict-Transport-Security: max-age=31536000
)来实现HSTS。符合用户代理会自动将不安全的链接转换为安全链接,从而降低中间人攻击的风险。另外,如果存在证书不安全的风险,例如,如果未识别根权限,则会显示错误消息并且不显示响应。
从HTTP到HTTPS实际上是一个不太好的主意。例如,攻击者可以使用像ssl strip这样的工具进行中间人攻击。要解决此问题,您应该使用HSTS protocol。它受到所有主流浏览器的支持(Internet Explorer,它是最新的采用者,从IE12开始支持它),并且被许多顶级站点(例如,Paypal,Google)使用。
在从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。
我刚才注意到这个问题,但我已经写了几个类似问题的答案:
- Webmasters.SE: How to prevent access to website without SSL connection?
- Force HTTPS for specific URL
我不认为从HTTP重定向到HTTPS必然是有害的,但这应该是有条不紊的。重要的是,您不应该依赖这些自动重定向在开发阶段出现。它们最多应该用于在浏览器中自行键入地址的用户。
用户检查的唯一责任还在于他们在预期时使用HTTPS(以及在没有警告的情况下验证证书)。
从HTTP切换到HTTPS的实际风险是,如果您选择保留会话,则可以可靠地信任切换前所执行的操作。您的网站的流程和流程应考虑到这一点。
例如,如果您的用户浏览您的购物网站并使用HTTP将各种商品添加到购物车中,并且您计划使用HTTPS获取付款详细信息,则还应该让用户使用HTTPS确认其购物篮的内容。
此外,从HTTP切换到HTTPS时,您可能必须重新验证用户并丢弃纯HTTP会话标识符(如果有)。否则,攻击者可能也可以使用该cookie移动到该站点的HTTPS部分,并可能冒充合法用户。
从技术角度来看,除了HTTPS所采用的外,IMO没有任何副作用。
从UX / UI的角度来看,建议使用点击或延迟重定向,提供可视指示,要求人们首先输入HTTPS URL,因为重定向本身会受到MITM攻击。然而,并没有多少HTTPS网站这样做,因为它们提供视觉效果,要求人们在其HTTPS页面上的浏览器上查找锁定图标。
这是一个完全可以接受的“引导”方法 - 301从HTTP重定向到HTTPS,然后在HTTPS端返回Strict-Transport-Security标头,以便将浏览器锁定为HTTPS。
完全阻止HTTP将是一个主要的可用性问题,因为在没有协议指示符的情况下输入URL时,Web浏览器将尝试HTTP协议,除非浏览器支持HSTS并且在浏览器缓存或预加载列表中找到HSTS令牌。
以上是关于重定向http到https是一个坏主意?的主要内容,如果未能解决你的问题,请参考以下文章
HTTP 到 HTTPS 301 重定向代码不起作用,它说重定向太多