74

通过 https 从 http 表单提交是否可以接受?看起来它应该是安全的,但它允许中间人攻击(这里有一个很好的讨论)。像mint.com这样的网站允许您从 http 页面登录,但会发布 https 帖子。在我的站点中,请求是有一个 http 登录页面,但能够安全登录。是否不值得冒可能的安全风险,我是否应该让所有用户访问安全页面进行登录(或使登录页面安全)?

4

11 回答 11

53

将表单从 http 页面发布到 https 页面确实会在以最简单的术语传输表单中的数据时对其进行加密。如果存在中间人攻击,浏览器会发出警告。

但是,如果原始的http表单被中间人攻击,并且https的回发地址被攻击者修改,那么您将不会收到任何警告。数据实际上仍将被加密,但中间人攻击者将能够解密(因为他首先向您发送了密钥)并读取数据。

此外,如果表单通过其他方式(脚本连接)发回内容,则可能会在表单发布之前通过线路发送未加密的数据(尽管任何好的网站都不会使用任何类型的敏感数据) .

于 2008-11-08T03:05:14.547 回答
33

是否有任何理由不在整个交易中使用 HTTPS?如果你找不到一个很好的,使用它!

  • 它可以说比切换协议更简单。

  • MITM 风险是真实存在的。

  • 在您的链接之后,用户“Helios”提出了一个很好的观点,即使用 100% HTTPS 对用户的困惑要小得多。

于 2008-11-08T03:08:03.480 回答
16

这种事情在网络上到处都是,尤其是在登录是可选的网站中。然而,由于非常微妙的原因,它本质上是不安全的,并且给用户一种虚假的安全感。我认为最近在codinghorror.com上有一篇关于此的文章。

危险在于,当您发送带有“ https://xxx ”的发布目标的页面时,出现该引用的页面并不安全,因此攻击者可以在传输过程中对其进行修改以指向攻击者的任何 URL愿望。因此,如果我访问您的网站,我必须查看来源以验证我的凭据是否已发布到安全地址,并且该验证与该特定提交相关。如果我明天回来,我必须再次查看源代码,因为该页面的特定交付可能已受到攻击并且帖子目标被破坏 - 如果我不每次都验证,当我知道帖子目标被破坏时,它是太晚了——我已经将我的凭据发送到了攻击者的 URL。

您应该提供登录页面的链接;只要您登录,登录页面和之后的所有内容都应该是 HTTPS。而且,真的,没有理由不这样做;SSL 的负担在于初始协商;随后的连接将使用 SSL 会话缓存,并且用于链接数据的对称加密实际上是极低的开销。

于 2008-11-08T05:56:09.333 回答
10

IE 博客解释:严重错误 #1:非 HTTPS 登录页面(即使提交到 HTTPS 页面)

  • 用户如何知道表单是通过 HTTPS 提交的?大多数浏览器都没有这样的 UI 提示。
  • 用户如何知道它正在访问正确的 HTTPS 页面?如果登录表单是通过 HTTP 传递的,则不能保证它在服务器和客户端之间没有更改。
于 2008-11-16T15:05:30.807 回答
6

Jay 和 Kiwi 对 MITM 攻击的看法是正确的。然而,重要的是要注意攻击者不必破坏表单并给出一些错误消息;攻击者可以插入 JavaScript 来发送表单数据两次,一次给他,一次给你。

但是,老实说,你不得不问,攻击者拦截你的登录页面并在飞行中修改它的可能性有多大?它与 (a) 在 SSL 会话上进行 MITM 攻击并希望用户按“确定”继续的风险相比如何;(b) 在您最初重定向到 SSL 时执行 MITM(例如,从http://example.comhttps://example.com)并改为重定向到https://doma1n.com,这在攻击者的控制之下; (c) 您的网站某处存在 XSS、XSRF 或 SQL 注入漏洞。

是的,我建议在 SSL 下运行登录表单,没有任何理由不这样做。但如果不是,我不会太担心,可能会有很多较低的果实。

更新

上面的答案来自 2008 年。从那时起,许多其他威胁变得明显。例如,从随机不受信任的网络(如 WiFi 热点)访问站点(附近的任何人都可能发起该攻击)。现在我会说是的,您绝对应该加密您的登录页面,并进一步加密您的整个网站。此外,现在有初始重定向问题的解决方案(HTTP 严格传输安全)。Open Web Application Security Project提供了几个最佳实践指南。

于 2008-11-08T06:29:21.840 回答
2

这篇文章是关键。是的,如果用户的数据被发送给您,它就会安全地到达某个地方。但是没有理由相信某个地方会是您的站点。此时,攻击者不仅要监听各个方向的数据移动。他将成为用户会话的另一端。您的网站只会认为用户从不费心提交表单。

于 2008-11-08T03:12:19.210 回答
2

对我(作为最终用户)来说,HTTPS 会话的价值不仅在于数据已加密,而且我已验证我正在输入超级机密的页面来自我想要的位置到。

在非 HTTPS 会话中使用表单会破坏这种保证。

(我知道 - 这只是表示表单受到 MITM 攻击的另一种说法)。

于 2008-11-08T07:51:31.410 回答
1

不,从 HTTP 转到 HTTPS 是不安全的。请求的发起点和结果点必须是 HTTPS,才能建立和使用安全通道。

于 2008-11-08T03:14:22.467 回答
1

每个建议您只提供登录页面链接的人似乎都忘记了可以使用 MITM 攻击轻松更改该链接。

于 2010-06-30T18:16:10.970 回答
1

在上述所有内容中遗漏的最大的事情之一是在主页上放置登录是一种普遍趋势(用户体验趋势中的巨大趋势)。

这里最大的问题是谷歌不喜欢搜索安全页面有充分的理由,所以所有那些想知道为什么不让它全部安全的开发人员,如果你想让你的页面对谷歌不可见,那就确保一切安全。否则,从 http 发布到 https 的第二个最佳选择是此时两害相权取其轻?

于 2011-07-10T23:52:51.070 回答
-2

我认为这个问题的主要考虑与用户知道的 URL 和浏览器默认替换的协议方案 (http:) 有关。

在这种情况下,想要确保加密通道的站点的正常行为是将http://home-page重定向到https://home-page。仍然存在欺骗/中间人的机会,但如果是通过 DNS 中毒,风险并不比从 https: URL 开始的风险高。如果另一个域名回来了,那么您需要担心。

这可能已经足够安全了。毕竟,如果您受制于有针对性的中间人,您不妨开始担心键盘记录器、您的本地 HOSTS 文件以及各种其他方式来找出涉及您的系统已被拥有的安全交易。

于 2008-11-08T19:03:41.817 回答