ASP.NET和中间人

时间:2011-08-24 05:45:11

标签: c# asp.net security ssl man-in-the-middle

ASP.NET是否使用一种机制来禁止客户端和服务器之间的数据操作?

如果没有,是否意味着我们应该使用SSL? SSL可以防止哪种攻击?

如果是,这个机制是什么?

3 个答案:

答案 0 :(得分:4)

不,ASP.NET webforms和mvc框架无法保护客户端和服务器之间的数据传输。视图状态是webforms中的加密数据,但这并不意味着它在到服务器或客户端的路上不会被篡改。简短的回答是如果你想防止中间人攻击,使用CA签名证书至少使用128位ssl。

答案 1 :(得分:1)

要禁止客户端和服务器之间的数据操作,您必须有办法让服务器检测此类操作。对于视图状态,可以通过确保视图状态启用了mac和加密来在asp.net中启用它。哦,你还应该设置一个viewstateuserkey。

但是,对于其他参数,攻击者可以操纵参数。所以使用SSL / TLS。 SSL / TLS在您的客户端和服务器之间建立加密连接,使攻击者无法嗅探数据或操纵内容(除非配置不当)。

不使用SSL / TLS,允许各种攻击(在开放的无线网络上嗅探会话cookie,注入数据包并操纵返回的网页等)。

答案 2 :(得分:0)

ASP.Net在客户端使用Viewstate来保留值 - 这实际上是牢不可破的。但是,任何Web应用程序都通过webbrowser将数据传递(发布)到服务器,webbrowser使用TCP / IP协议传递到数据包数据块中。可以使用某些软件轻松监视此信息,以查看正在传输的数据(但是,在传输到服务器时更改此数据似乎非常难以实时)。 SSL只是在浏览器将数据发送到服务器之前加密数据(比如您在登录框中输入的用户名和密码);可以监视在TCP / IP信道上传输时的这些数据,但它将采用加密格式。因此,安全。

但是,您可以通过此链接中的要点来确保您的应用程序安全: