2016-06-30 100 views
1

最近我參加了mvc培訓。培訓師說 - 根據安全考慮,我們必須使用HttpPost而不是HttpGet。始終使用HttpPost。MVC HttpGet和HttpPost

任何人都可以解釋 - 當我們使用HttpGet時,安全問題是什麼?

+2

使用GET採取行動的風險是:Click here! 而且,事實上,你會離開頁面然後按瀏覽器的後退按鈕 –

+3

看到這個職位對這個問題的一些信息後,再次觸發動作http://stackoverflow.com/questions/2080863/what-is-the-difference-between-a-http-get-and-http-post-and-why-is-http-post-wea –

+1

應該使用HttpGet只有從地址欄中調用的網址。應該使用HttpPost調用所有按鈕和鏈接點擊。 Bcoz例如:'www.users.com/user/getinfo/4'獲取id 4的數據。在這種情況下,用戶可以通過簡單地將不同的id傳遞給url來輕鬆地爲其他用戶獲取數據。 –

回答

3

當通過安全連接(https)發送數據時,發佈請求的主體被加密且實際上不可讀,您只能看到數據正在發往的地址,而不能看到數據本身。另一方面獲取沒有正文,數據必須以任一查詢字符串或作爲路徑參數傳輸。儘管查詢字符串確實也被加密,但由於服務器和瀏覽器上的請求記錄,可以獲取該數據。

3

任何人都可以在公共論壇或計算器上插入圖片鏈接到您的網站。然後,接下來發生的:

  1. 瀏覽器的外觀,在URL中的圖像標籤
  2. 瀏覽器找到對應於域名的URL餅乾
  3. 瀏覽器發送請求與用戶Cookie的URL
  4. 你的服務器執行行動
  5. 瀏覽器嘗試將響應解析爲圖像並且失敗
  6. 瀏覽器呈現錯誤而不是圖像

但是,如果您將行爲標記爲Http Post,那麼這種情況不適用於90%的網站。但是你也應該考慮到,如果黑客可以在其他網站上創建一個表單,他仍然可以讓瀏覽器執行請求。所以你需要CSRF。那麼,瀏覽器做了很多事情來防止跨站請求,但在某些情況下仍然可能。