MVC HttpGet和HttpPost

时间:2016-06-30 10:52:36

标签: c# asp.net-mvc

最近我参加了mvc的培训。培训师说 - 根据安全考虑,我们必须使用HttpPost而不是HttpGet。始终使用HttpPost。

任何人都可以解释一下 - 当我们使用HttpGet时会出现什么安全问题?

2 个答案:

答案 0 :(得分:3)

通过安全连接(https)传输数据时,邮件请求的主体已加密且实际上不可读,您只能看到数据传输的地址而不是数据本身。另一方面,没有正文和数据必须在查询字符串中传输或作为路径参数传输。虽然查询字符串确实也加密了,但由于服务器和浏览器上的请求记录,可以获取该数据。

答案 1 :(得分:3)

任何人都可以在公共论坛或stackoverflow上插入图片,并链接到您的网站。然后接下来发生:

  1. 浏览器查看图片标记中的网址
  2. 浏览器在网址
  3. 中查找与域名对应的Cookie
  4. 浏览器使用用户
  5. 的Cookie向网址发送请求
  6. 您的服务器执行操作
  7. 浏览器尝试将响应解析为图像并失败
  8. 浏览器呈现错误而不是图像
  9. 但是,如果您仅将操作标记为Http Post,则此方案不适用于90%的网站。但是你也应该考虑,如果黑客可以在其他网站上创建一个表单,那么他仍然可以让浏览器执行请求。所以你需要CSRF。好吧,浏览器为防止跨站点请求做了很多工作,但在某些情况下它仍然可行。