ASP.NET 是否使用一种机制来禁止在客户端和服务器之间操作数据?
如果不是,是否意味着我们应该使用 SSL?SSL 可以防止什么样的攻击?
如果是,这个机制是什么?
ASP.NET 是否使用一种机制来禁止在客户端和服务器之间操作数据?
如果不是,是否意味着我们应该使用 SSL?SSL 可以防止什么样的攻击?
如果是,这个机制是什么?
不,ASP.NET webforms 和 mvc 框架对保护客户端和服务器之间的数据传输没有任何作用。视图状态是 web 表单中的一段加密数据,但这并不意味着它在到达服务器或客户端的过程中不能被篡改。简短的回答是,如果要防止中间人攻击,请使用 CA 签名证书至少使用 128 位 ssl。
要禁止客户端和服务器之间的数据操作,您必须有一种方法让服务器检测这种操作。对于视图状态,这可以在 asp.net 中启用,方法是确保视图状态启用了 mac 和加密。哦,你还应该设置一个viewstateuserkey。
然而,对于其他参数,攻击者可以操纵这些参数。所以使用 SSL/TLS。SSL/TLS 在您的客户端和服务器之间建立加密连接,使攻击者无法(除非配置不当)嗅出数据或操纵内容。
不使用 SSL/TLS,允许各种攻击(嗅探开放无线网络上的会话 cookie、注入数据包和操纵返回的网页等)
ASP.Net 在客户端使用 Viewstate 来保留值——这实际上是牢不可破的。但是,任何 Web 应用程序通过 Web 浏览器将数据传递(发布)到服务器,该浏览器使用 TCP/IP 协议以数据包数据块的形式传递。使用某些软件可以轻松地监控此信息以查看正在传输的数据(但是,在传输到服务器的同时更改此数据似乎非常非常困难)。SSL 只是在浏览器将数据发送到服务器之前加密数据(比如您在登录框中输入的用户名和密码);在 TCP/IP 通道上传输的这些数据可以被监控,但它会采用加密格式。因此,安全。
但是,您可以通过注意此链接中的要点来确保您的应用程序安全: