【发布时间】:2011-04-28 01:26:53
【问题描述】:
我有一个带有表单的 HTTP 页面。如果我将操作设置为 HTTPS 页面,请求是否安全?浏览器在将数据发送到网络之前是否会处理所有数据?还是应该为我的整个网站使用 HTTPS?
【问题讨论】:
-
您接受的答案通常被视为过时的建议。请看我的回复:stackoverflow.com/a/22625230/2179408
我有一个带有表单的 HTTP 页面。如果我将操作设置为 HTTPS 页面,请求是否安全?浏览器在将数据发送到网络之前是否会处理所有数据?还是应该为我的整个网站使用 HTTPS?
【问题讨论】:
是的,如果您的表单发布到的位置是 HTTPS,它将是安全的。
但是,用户可能会因为表单页面上的浏览器中没有锁定图标而吓坏了。从可用性的角度来看,两个页面都是 HTTPS 可能会更好。
【讨论】:
没有。 Troy Hunt 确定了一个简单的man-in-the-middle attack,它表明从 HTTP 到 HTTPS 的发布绝不是安全的。随着免费 WiFi 的普及,这种攻击将非常容易执行。
http://www.troyhunt.com/2013/05/your-login-form-posts-to-https-but-you.html
【讨论】:
是的。只要需要安全的请求是https,就可以了。
话虽如此,包括 gmail 在内的许多关键网站都不再费心将其网站的一小部分划分为 https,而是将整个网站设为 https。它更简单、更安全,而且性能损失很小。
【讨论】:
别这样!
考虑 MITM 攻击,攻击者坐在服务器和客户端之间某处的线路上,在登录表单到达客户端之前对其进行修改。登录表单现在包含键盘记录器或将 POST 操作指向网络钓鱼页面而不是真实服务器。最终用户没有警告或 UI 提示,因此他们继续提交表单。
假设 MITM 攻击涉及攻击者在咖啡店部署“免费 Wifi”(通过智能手机热点或其他方式)。当毫无戒心的人使用这个“免费 Wifi”通过 HTTP 表单登录时,即使它对 HTTPS 进行 POST,攻击者也可以通过分析他们的热点网络流量来查看用户的明文凭据。
参考资料:
【讨论】:
通过 HTTPS 发布时,从表单到服务器的实际数据传输是加密的。如果这就是您所说的安全,那么是的,它是安全的。
我认为您的问题是,在发布之前阅读表单的客户端内容如何。这当然是可能的,HTTPS 与否。
不过,另一方面,您可能应该将 HTTPS 用于实际表单。一些浏览器警告用户,因为他们的帖子被重定向到 HTTP/HTTPS 边界。另外,我认为您的用户不会乐于填写没有显示安全图标的表单。
【讨论】:
如果您将操作设置为 HTTPS,这确实是安全的。在通过 HTTPS 发生任何事情之前,必须先进行握手,并且发送数据的浏览器必须在操作发生时执行此操作。
【讨论】: