第一步:頁面加上令牌
頁面加上@Html.AntiForgeryToken(),它會在頁面生成一個請求令牌,當然cookie也有一個,不需要管它
第二步:請求中帶上令牌
在請求的數據裏面加上這個令牌,可以在from裏面直接加上@Html.AntiForgeryToken(),如果是ajax請求,那就在參數裏面加上這個
題外:
因爲我接手的是一個已經做得差不多的項目,不可能去每個ajax裏面去加上這個令牌,所以我在分佈頁裏面加上第一步,然後使用一個攔截全局ajax的js,在請求的數據裏面把令牌塞進去,這樣在分佈頁裏面進行了操作,其餘引用這個頁面的都ok了
Ajax-hook 的github地址
https://github.com/wendux/Ajax-hook
js的下載
https://unpkg.com/ajax-hook/dist/ajaxhook.min.js
第三步:控制器裏面加上令牌校驗
這步就很簡單了,只需要在頭部加上[ValidateAntiForgeryToken]就可以了
官方地址:
https://docs.microsoft.com/zh-cn/aspnet/web-api/overview/security/preventing-cross-site-request-forgery-csrf-attacks