3

我正在帮助测试一个接受用户名和密码的 .NET 应用程序。该应用程序通过 SSL 运行,并通过 iframe 托管在同样使用 SSL 设置的页面上(因此用户可以在父页面上看到 https 并对输入信息充满信心)。

因此,需要明确的是,有一个页面https://www.mydomain.com/mypage.aspx,并且在该页面内,有一个 iframe 引用与https://www 同一服务器上的 .NET 应用程序。 mydomain.com/apps/myapp.aspx

当用户提交页面时,我正在通过 Filezilla 浏览器插件“Live HTTP Headers”查看标题。令我沮丧的是,表单数据(包括用户名和密码)以明文形式显示在标题的 POST 部分。

我的结论是信息没有被加密。那是对的吗?如果是这样,最好的解决方案是什么?

4

2 回答 2

4

如果您通过 https/SSL 发布这些表单变量,那么实际传输将被加密。您将能够在浏览器扩展中查看它们,但浏览器必须对它们进行加密才能通过 SSL 将它们发送到服务器,只要该帖子实际上是发布到 https:// 而不是 http://

然后,您不应该将用户名密码对返回给用户,而是应该对用户进行身份验证,然后如果匹配,则使用表单身份验证之类的东西生成一个令牌,为当前会话对他们进行身份验证。

于 2013-05-22T14:05:10.967 回答
1

我不确定您的 .net 身份验证是如何设置的(Windows、表单或护照),但即使没有使用 SSL,身份验证票证也会被加密。SSL 只是保护客户端(浏览器)和服务器之间的通信通道。根据您的描述,听起来表单只是通过 post 或 get 将用户名/密码字段作为参数发送,而不使用 .Net 身份验证功能?

这是有关该主题的良好背景:http: //msdn.microsoft.com/en-us/library/aa291347%28v=vs.71%29.aspx

更新:我重新阅读了您的问题:我现在很清楚您正在使用.net Basic Authentication + SSL。这应该可以正常工作,因为 SSL 将涵盖基本身份验证中缺少的加密部分。您只需要确保设置正确。关于 FF 附加组件,您只是在查看客户(发起者)可用的信息,而第三方将无法做到这一点。

于 2013-05-22T14:05:05.710 回答