2012-01-12 100 views
2

假设我有在这个位置上一个页面上的表单提交表单到一个安全的网址...从非安全的网页

http://mydomain.com/myform.htm 

而且形式看起来像这样...

<form method="post" action="https://secure.otherdomain.com/handleform.php"> 
    .... 
</form> 

假设在接收此表单提交的服务器上安装了有效的SSL证书,该表单提交的内容是否会被加密?

回答

6

POST请求将通过HTTPS传输(如果配置正确,则加密)。从通过普通HTTP获取的页面向HTTPS页面提交表单是不好的做法。初始页面也应通过HTTPS提供。原因是一个MITM攻击者可能拦截用该表单加载页面的响应,并将该链接替换为指向另一个目标。

请参阅第一条规则在这里(当然,不是具体的登陆页):

规则 - 使用TLS为所有登录页和所有验证页面

登录页面和所有后续认证的页面必须是 通过TL独占访问S.初始登录页面(称为 “登录登录页面”)必须通过TLS提供。如果未能使用 TLS作为登录登录页面,则攻击者可以修改登录 表单操作,从而导致用户的凭据被发布到 任意位置。如果登录后未能将TLS用于已验证页面 ,则攻击者可以查看未加密的会话ID 并危及用户的已验证会话。

+0

也看到这个问题:http://security.stackexchange.com/q/1692/2435 – Bruno 2012-01-12 15:15:53

0

是的。它会被安全地传送。

3

假设服务器和客户端之间可以协商一个有效的SSL/TLS会话,那么是的。这意味着客户必须愿意信任服务器提供的任何证书,并且双方可以协商一个相互认可的密码集(使用什么算法等)。有很多配置选项可以设置来改变允许的内容,但是在一个“正常”的实现中,你不需要搞一个特定的,非正常的算法,需要客户端证书认证等等,一切都应该工作得很好,你会有一个受保护的会话......如果因为某种原因失败了,你会知道你的客户会收到关于错误的错误。

请注意,一般来说,虽然你可以做到这一点,而传输将被加密,你通常不应该。将一个未加密/受保护的页面提交给其中一个会让您容易受到中途攻击中的几种类型的Man攻击。你可以看到OWASP的文章,以及它为什么不好,here