[.NET MVC 4] 使用 ValidateAntiForgery 防止 CSRF 跨網站請求偽造攻擊

  • 2178
  • 0

[.NET MVC 4] 使用 ValidateAntiForgery 防止CSRF跨網站請求偽造攻擊

CSRF (跨網站請求偽造),簡單的說就是尤其他的位置 Post 偽造資料請求的攻擊,較詳細的解說可參考http://en.wikipedia.org/wiki/Cross-site_request_forgery

NET MVC 4 可使用 ValidateAntiForgery 來防止 CSRF 攻擊,僅限 Post ,其原理只是在 Return View 時計算出一組 Token 並帶到頁面上,在 Post 時會去比對這組 Token ,使用方法很簡單。

在 View ( or Templates or Partial ) 中的 Form 裡面加入 @Html.AntiForgeryToken ( 在此使用的是Razor語法,若是使用Aspx只要將@去掉並以<% ... %>包起來即可 ) 。

Image

接著在 Form Sumit 的目標 Action 上加上 [ValidateAntiForgeryToken] 這個屬性 ( 若是 Action 上有這個屬性,但 View 沒有,會出現 Error )。

Image(1)

以上兩個步驟即完成針對 CSRF 攻擊安全性的提升。