如果我从常规的http页面使用<form action="https">,信息是否仍然加密?

9

假设我在网址 http://mysite.com/form.html 上。查看源代码,我看到:

<form method="post" action="https://mysite.com/process">
<input type="text" name="user" value="information">
<input type="submit">
</form>

如果我点击提交按钮,那么表单信息在发送到处理页面/控制器时会被加密吗?
4个回答

9

是的 - 表单中的数据将使用SSL实现的常规握手加密发送。从那里,您可以选择让用户保持在SSL下,或者通过会话标识符将它们返回到标准连接。


这不安全。请参阅Troy Hunt的帖子 - Martin Ueding
2
它是安全的 - 不安全的是从HTTP页面提交HTTPS表单。这里确实存在MITM的问题,但是在HTTPS表单上进行MITM也是一个问题。虽然视频中提出的观点是有建设性的,但您传达它的方法并不是很好。下次尝试在单个评论中添加更多的词,而不是少词的多个评论。此外,Sripathi Krishnan已经在四年前提出了这一观点。感觉有点像死灵法术或博客垃圾邮件,是吗? - Seidr
我会尽力在未来提供更好的评论。这篇文章是“https form action”的突出搜索结果,而这种模式仍然太常见了。Sripathi Krishnan的答案得票较少且未被采纳,尽管我认为它应该成为被采纳的答案。 - Martin Ueding

6

无法保证数据传输被加密,或者提交的数据能够到达您的网站。

由于原始响应是通过http协议传输的,中间人可能对您的HTML源代码进行了更改,或者插入了一些JavaScript来修改表单的操作参数。因此,当表单提交到浏览器时,它可能会变成这样

<form method="post" action="https://evilsite.com/process">
<input type="text" name="user" value="information">
<input type="submit">
</form>

这意味着,如果你想保证安全,就必须在所有页面上使用HTTPS。

4
是的,它可以实现,但请注意,我们已经付出了相当大的努力来训练用户在包含表单的页面上寻找SSL小锁(无论这种培训是否有效)。通常情况下,浏览器会发出警告,如果在安全页面上提交到不安全页面的表单,因此受过训练的行为确实具有积极的目的。
如果您按照此方式实施表单,则用户将无法知道表单提交是否安全(除非查看页面代码)直到他们点击提交。在您的使用情况中可能并不重要,但如果表单中的数据只应该通过安全方式提交,则与训练人们寻找小锁的尝试相违背。

不行。“用户在提交表单之前没有办法知道表单提交是否安全”: 它并没有通过安全的方式传输!攻击者可能已经注入了JavaScript键盘记录器或更改了表单操作。请参阅Troy Hunt的文章 - Martin Ueding

-1

它将在较低的网络层(例如原始数据包、TCP、IP、以太网)上进行加密,而不是在应用程序层级别上进行加密(因为它在接收方透明地解码)。

当目标URL使用加密(如HTTPS)时,中间人将看不到您提交的表单数据的明文。


不安全。请参阅Troy Hunt的帖子 - Martin Ueding

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接