HTTPPost 是在服务器端发送数据之前还是之后获取信息?

Does HTTPPost get information before or after data is sent server-side?

我想尝试使用 .NET MVC 散列密码,但我不想通过 HTTP 协议以纯文本形式发送密码。

我正在考虑在使用 HTTP Post 属性和 FormCollection class 的控制器中使用哈希方法,但因为这是在控制器中 class 我不确定如果它是 100% 安全的。

当我在散列算法中使用 HTTP Post 协议时,我会在提交的数据发送到服务器之前或之前获取它吗?

"I don't want to send a password in plaintext"

...在这种情况下,请确保对您站点的所有请求都使用 HTTPS。这将加密整个连接。因此您的代码可以以纯文本形式发送密码,但 HTTPS 将确保它实际上不是那样传输的。它还将在数据传递到您的应用程序之前在服务器端处理解密。

如果您发送经过哈希处理但未加密传输的密码,那么有人可以拦截它,然后通过简单地发送他们自己的包含相同哈希值的请求来访问您的应用程序,当然服务器会考虑它是正确的密码。

Does HTTPPost get information before or after data is sent server-side?

When I use the HTTP Post protocol in the hashing algorithm will I be getting the submitted data before it's sent to the server or before?

您在控制器中编写的代码在服务器上运行。在数据最终到达服务器之前,它会从客户端传输到服务器。如果您不使用 HTTPS,任何有权访问客户端、服务器或两者之间的网络的人都可以读取它。

所以:使用 HTTPS。不要发明自己的哈希机制,因为它会有缺陷,如评论和其他答案中所述。