是否可以通过https从http表单提交?它似乎应该是安全的,但它允许一个人在中间攻击(这是一个很好的讨论).有一些网站,如mint.com,允许您从http页面登录,但执行https发布.在我的网站中,请求是拥有http登录页面,但能够安全登录.是否值得承担可能的安全风险,我是否应该让所有用户进入安全页面登录(或使登录页面安全)?
将表单从http页面发布到https页面会在以最简单的术语传输时对表单中的数据进行加密.如果有中间人攻击,浏览器会发出警告.
但是,如果原始的http表单受到中间人的攻击并且攻击者修改了https回发后地址,那么您将不会收到任何警告.数据仍将实际加密,但中间人攻击者将能够解密(因为他首先发送了密钥)并读取数据.
此外,如果表单通过其他方式(脚本连接)发送回来,则可能有可能在发布表单之前通过网络发送未加密的数据(尽管任何好的网站都不会对任何类型的敏感数据执行此操作) .
是否有任何理由不在整个交易中使用HTTPS?如果找不到一个好的,请使用它!
它可以说比切换协议更简单.
MITM的风险是真实的.
在您的链接之后,用户"Helios"非常清楚地表明,使用100%HTTPS对用户来说远没有那么混乱.
这种事情在网络上突然出现,特别是在登录是可选的网站中.然而,由于非常微妙的原因,它本质上是不安全的,并且给用户带来了错误的安全感.我想最近在codinghorror.com上有一篇关于这个的文章.
危险在于,当您发送的页面的帖子目标为" https:// xxx "时,发生该引用的页面不安全,因此攻击者可以在传输过程中对其进行修改以指向攻击者的任何URL祝愿.因此,如果我访问您的网站,我必须查看来源以验证我的凭据是否已发布到安全地址,并且该验证仅与该特定提交相关.如果我明天回来,我必须再次查看来源,因为页面的特定传递可能已被攻击并且后期目标被破坏 - 如果我不是每次都验证,那么当我知道后期目标被破坏时,它是太晚了 - 我已经将我的凭据发送给了攻击者的URL.
您应该只提供登录页面的链接; 并且只要您已登录,登录页面及其后的所有内容都应该是HTTPS.而且,实际上,没有理由不这样做; SSL的负担是在最初的谈判中; 后续连接将使用SSL会话缓存,并且用于链接数据的对称加密实际上是非常低的开销.
IE博客解释:严重错误#1:非HTTPS登录页面(即使提交到HTTPS页面)
用户如何知道表单是通过HTTPS提交的?大多数浏览器都没有这样的UI提示.
用户怎么知道它会进入正确的HTTPS页面?如果登录表单是通过HTTP提供的,则无法保证服务器和客户端之间没有更改.
Jay和Kiwi对于MITM攻击是正确的.但是,重要的是要注意攻击者不必破坏表单并给出一些错误消息; 攻击者可以改为插入JavaScript来两次发送表单数据,一次发送给他,一次发送给你.
但是,老实说,你必须问,攻击者拦截登录页面并在飞行中修改它的可能性是多少?它是如何与(a)在SSL会话上进行MITM攻击的风险相比,并希望用户按"OK"继续; (b)在初始重定向到SSL时执行MITM(例如,从http://example.com到https://example.com)并重定向到https://doma1n.com,这是受攻击者的控制; (c)您的网站上有某个XSS,XSRF或SQL注入漏洞.
是的,我建议在SSL下运行登录表单,没有任何理由不这样做.但如果不是,我不会担心,可能会有更低的悬挂果实.
上述答案来自2008年.从那时起,许多其他威胁变得明显.例如,从随机不受信任的网络访问站点,例如WiFi热点(附近的任何人都可能能够实现该攻击).现在我说是的,你绝对应该加密你的登录页面,并进一步加强你的整个网站.此外,现在有解决初始重定向问题(HTTP严格传输安全性)的解决方案.在开放Web应用安全项目提出了一些最佳做法指南可用.