明文密码显示在http标头中

时间:2013-05-22 13:53:52

标签: .net forms security passwords

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

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

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

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

2 个答案:

答案 0 :(得分:4)

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

您不应该将用户名密码对返回给用户,但是应该对用户进行身份验证,然后如果匹配则使用表单身份验证之类的内容来生成对当前会话进行身份验证的令牌。

答案 1 :(得分:1)

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

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

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