1

我刚刚开始从 AspNet.Identity 的登录页面处理一个 aspx 网站。我有我的字段、用户名和密码 (textmode="Password") 和一个提交按钮 (asp:button) 像往常一样用我的代码在后面进行登录等。

我的问题是,当我的用户点击提交时,密码是如何发送到服务器的?我是否需要使用 SSL 以确保密码不会以明文形式发送?

编辑 StackOverflow 的登录页面不是通过 HTTPS - 他们(以及其他不使用 HTTPS 的站点)如何管理密码传输?

4

3 回答 3

1

主要问题是,如果有人能够监听从您的客户端到您的服务器的流量,那么他们也将能够操纵您的服务器发送给客户端的内容。这个问题使所有试图做一些 javascript 魔术来隐藏它的尝试都无效。

换句话说,目前只有 SSL 可以帮助您。

于 2013-10-04T07:15:40.380 回答
1

可以说从浏览器提交的所有数据都是以明文形式发送的(也就是说,浏览器本身都不会对其进行加密,当数据到达您的服务器端脚本时也不需要解密)。所有加密(如果有)都在协议级别执行。

普通 HTTP 不会加密通过它发送的任何信息,这允许进行简单的检查(中间人攻击、窃听)。另一方面,HTTPS 在原本不安全的网络上创建了一个安全通道,并且可以很好地防止上述攻击。

一个警告是GET用于将数据发送到服务器。这些信息很容易出现在服务器日志中。

于 2013-10-04T07:01:29.537 回答
1

根据form方法GETPOST值被发送到服务器。

默认情况下,在 asp.net 中,该form方法是POST在请求正文中发送的。

如果表单方法是,GET那么它在 url 中发送。

编辑 1

当您使用 HTTPS 时,它channel是安全的。但有时它可能会比HTTPS 需要一个非常慢的初始握手慢HTTP

一些有用的链接
http 和 https 的区别
HTTP vs HTTPS 性能

于 2013-10-04T06:58:20.593 回答