C# MVC HttpGet和HttpPost
最近我参加了mvc培训。培训师说-出于安全考虑,我们必须使用HttpPost而不是HttpGet。始终使用HttpPostC# MVC HttpGet和HttpPost,c#,asp.net-mvc,C#,Asp.net Mvc,最近我参加了mvc培训。培训师说-出于安全考虑,我们必须使用HttpPost而不是HttpGet。始终使用HttpPost 有人能解释一下吗?当我们使用HttpGet时,安全问题是什么?当通过安全连接(https)传输数据时,post请求的主体是加密的,实际上是不可读的,您只能看到数据的地址,而不能看到数据本身。另一方面,Get没有主体,数据必须以查询字符串或路径参数的形式传输。虽然查询字符串确实也得到了加密,但由于服务器和浏览器上的请求日志记录,因此可以获得该数据 在post请求的安全连接(h
有人能解释一下吗?当我们使用HttpGet时,安全问题是什么?当通过安全连接(https)传输数据时,post请求的主体是加密的,实际上是不可读的,您只能看到数据的地址,而不能看到数据本身。另一方面,Get没有主体,数据必须以查询字符串或路径参数的形式传输。虽然查询字符串确实也得到了加密,但由于服务器和浏览器上的请求日志记录,因此可以获得该数据 在post请求的安全连接(https)主体上传输数据时是加密的,实际上是不可读的,您只能看到数据所在的地址,而不能看到数据本身。另一方面,Get没有主体,数据必须以查询字符串或路径参数的形式传输。虽然查询字符串确实也得到了加密,但由于服务器和浏览器上的请求日志记录,因此可以获得该数据 任何人都可以在公共论坛或stackoverflow上插入图像,并链接到您的网站。接下来发生的是:
但是,如果您将您的操作标记为仅Http Post,则此场景不适用于90%的站点。但是你也应该考虑,如果黑客可以在其他网站上创建一个表单,那么他仍然可以让浏览器执行请求。所以你需要。嗯,浏览器在防止跨站点请求方面做了很多工作,但在某些情况下仍然是可能的。任何人都可以在公共论坛或stackoverflow上插入图像并链接到您的网站。接下来发生的是:
但是,如果您将您的操作标记为仅Http Post,则此场景不适用于90%的站点。但是你也应该考虑,如果黑客可以在其他网站上创建一个表单,那么他仍然可以让浏览器执行请求。所以你需要。浏览器在防止跨站点请求方面做了很多工作,但在某些情况下仍然有可能做到这一点。使用GET for action的风险在于:这里!此外,您在离开页面后再次触发操作,然后按下浏览器的后退按钮。有关主题HttpGet的一些信息,请参阅本文。这一事实应仅用于从地址栏调用的URL。所有的按钮和链接点击都应该使用HttpPost调用。例如:“www.users.com/user/getinfo/4”获取id 4的数据。在这种情况下,用户只需向URL传递不同的id,就可以轻松获得其他用户的数据。我仍在试图弄清楚为什么这个问题被否决?这是一个关于GET和POST如何真正在引擎盖下工作的常见误解。来自WebForms的很多人都在处理所有事情,当他们切换到MVC时,就像被交给了Lambo的钥匙,他们不知所措。使用get进行操作的风险是:这里!此外,您在离开页面后再次触发操作,然后按下浏览器的后退按钮。有关主题HttpGet的一些信息,请参阅本文。这一事实应仅用于从地址栏调用的URL。所有的按钮和链接点击都应该使用HttpPost调用。例如:“www.users.com/user/getinfo/4”获取id 4的数据。在这种情况下,用户只需向URL传递不同的id,就可以轻松获得其他用户的数据。我仍在试图弄清楚为什么这个问题被否决?这是一个关于GET和POST如何真正在引擎盖下工作的常见误解。来自WebForms的很多人都在处理所有事情,当他们切换到MVC时,就像被交给了一个Lambo的钥匙,他们感到不知所措。