ValidateAntiForgeryToken:其目的和實現
MVC Web 應用程式中的表單通常是跨站點請求偽造 (CSRFRF) 攻擊的目標。當惡意網站向受信任的網站發送請求並欺騙授權使用者的瀏覽器提交這些請求時,就會發生 CSRF 攻擊,從而允許攻擊者執行未經授權的操作。
為了解決此漏洞,.NET MVC 框架提供了 ValidateAntiForgeryToken屬性,對於防止CSRF攻擊起著至關重要的作用。此屬性可確保提交給特定操作方法的表單實際上源自於伺服器而不是外部來源。
ValidateAntiForgeryToken 的工作原理
當操作方法是MVC 框架用ValidateAntiForgeryToken 裝飾,產生一個唯一的一次性令牌,並使用以下方法將其嵌入到表單的隱藏欄位中: @Html.AntiForgeryToken() 輔助方法。該令牌對於使用者、會話和瀏覽器來說都是唯一的。
當使用者提交表單時,框架會將隱藏欄位中的令牌與先前產生的令牌進行比較。如果標記匹配,則驗證表單提交。否則,它會引發錯誤並拒絕提交,從而減輕 CSRF 攻擊。
範例用法
要在MVC 4 實作ValidateAntiForgeryToken 屬性,請依照下列步驟操作:
[HttpPost] [ValidateAntiForgeryToken] public ActionResult Create(MyModel model) { // Code to handle the form submission }
<form action="@Url.Action("Create", "MyController")" method="post"> @Html.AntiForgeryToken() <!-- Other form controls --> </form>
注意: @Html.AntiForgeryToken() 輔助方法必須放置在表單的表單標籤內,但位於所有其他表單控制項之前。
透過執行以下步驟,您可以有效保護您的 MVC Web 應用程式免受 CSRF 攻擊並確保完整性您提交的表單的數量。
以上是ValidateAntiForgeryToken 如何防止 ASP.NET MVC 中的 CSRF 攻擊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!