Security 将http重定向到https是个坏主意吗?

Security 将http重定向到https是个坏主意吗?,security,ssl,https,Security,Ssl,Https,我正在阅读,它说如果一个站点是SSL,并且用户试图通过常规http访问它,那么应用程序不应该将用户重定向到https。它应该能阻止他。有人能证实这一点吗?这听起来不是个好主意,我想知道将用户转发到https的真正风险是什么。似乎它背后没有技术原因,只是它是教育用户的一个好方法 禁用对域的HTTP访问, 甚至不要重定向或将其链接到SSL。 只要通知用户这个网站是 无法通过HTTP访问,并且它们具有 通过SSL访问它 这是针对MITM的最佳实践 以及网络钓鱼攻击。这样你的 用户将接受这样的教育: 应

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

禁用对域的HTTP访问, 甚至不要重定向或将其链接到SSL。 只要通知用户这个网站是 无法通过HTTP访问,并且它们具有 通过SSL访问它

这是针对MITM的最佳实践 以及网络钓鱼攻击。这样你的 用户将接受这样的教育: 应用程序永远无法通过HTTP访问 当他们遇到网络钓鱼时 或者MITM攻击,他们会知道的 有点不对劲

保护您的隐私的最佳方法之一 针对MITM攻击和攻击的应用程序 网络钓鱼攻击正在教育您的用户 用户


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

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

我同意引用的文章,即HTTPS是抵御MITM攻击的最佳方法,但我不同意它是抵御钓鱼的最佳实践。用户教育确实是防止网络钓鱼攻击的关键因素(用户必须检查他们是否从正确的域访问站点),但决不能通过阻止HTTP重定向到HTTPS来进行教育

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

从技术角度来看,我认为除了HTTPS所带来的影响之外,没有任何副作用


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

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

我也看不出HTTP需要被完全屏蔽的任何技术原因,许多站点确实将HTTP转发到HTTPS。执行此操作时,强烈建议实现HTTP严格传输安全性(HSTS),这是一种web安全机制,声明浏览器仅使用HTTPS连接


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

从HTTP转换为HTTPS实际上不是一个好主意。例如,攻击者可以使用类似的工具进行中间人攻击。
要解决此问题,您应该使用。它受到所有主流浏览器的支持(最新采用者Internet Explorer从IE12开始就支持它),许多顶级网站(如Paypal、Google)都在使用它。

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

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

当用户期望使用HTTPS时,检查是否使用HTTPS(并且证书是否在没有警告的情况下进行了验证)也是用户的唯一责任

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

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


此外,从HTTP切换到HTTPS时,可能需要重新验证用户身份,并放弃普通HTTP会话标识符(如果有)。否则,攻击者可能也可以使用该cookie移动到站点的HTTPS部分,并可能模拟合法用户。

这是一种完全可以接受的“引导”方法-301从HTTP重定向到HTTPS,然后在HTTPS端返回一个严格的传输安全头,以便将浏览器锁定到HTTPS

完全阻止HTTP将是一个主要的可用性问题,因为当在没有协议标识符的情况下输入URL时,web浏览器将尝试使用HTTP协议,除非浏览器