.net 明文密码显示在http头中

.net 明文密码显示在http头中,.net,forms,security,passwords,.net,Forms,Security,Passwords,我正在帮助测试一个接受用户名和密码的.NET应用程序。该应用程序通过SSL运行,并通过同样使用SSL设置的页面上的iframe托管(因此用户可以在父页面上看到https,并对输入信息充满信心) 因此,需要明确的是,有一个页面,在该页面中有一个iframe,它引用了与之相同的服务器上的.NET应用程序 当用户提交页面时,我通过Filezilla浏览器插件“Live HTTP headers”查看标题。令我沮丧的是,表单数据(包括用户名和密码)以明文形式显示在标题的POST部分 我的结论是这些信息没

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

因此,需要明确的是,有一个页面,在该页面中有一个iframe,它引用了与之相同的服务器上的.NET应用程序

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


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

我不确定您的.net身份验证是如何设置的(windows、窗体或passport),但即使不使用SSL,身份验证票证也是加密的。 SSL只是保护客户端(浏览器)和服务器之间的通信通道。 从您描述的情况来看,表单似乎只是通过post或get发送用户名/密码字段作为参数,而不使用.Net身份验证功能

以下是关于这一主题的良好背景:


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

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


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

如果您以HTML表单提交用户名和密码,则不会在帖子中对其进行加密要求但它们将在SSL中加密。一旦服务器接收到它们,您就不应该将它们发送回去,而是使用表单身份验证等方法从那时开始管理用户。因此,如果post请求中没有对它们进行加密,这是可以嗅探到的吗?我想我不确定事情的顺序(当SSL发生时)。我认为post请求是从客户端发送到服务器的。那么SSL加密什么时候开始呢?我是否需要担心我可以在post请求明文中看到它们……其他人可以看到它们吗?应用程序正在使用“表单”作为身份验证模式。应用程序的身份验证模式为“表单”。