[C#] ASP.NET Core 6.0 - 一種可以將 Page 當 WebAPI 用的方法 + __RequestVerificationToken
繼續上一篇文章 ( ASP.NET Core 6.0 - 一種可以將 Page 當 WebAPI 用的方法,但不推薦 )沒說得事情,其實是有一個方法
可以增加安全性不用加上 [IgnoreAntiforgeryToken] ,還是適當的增加了安全性可以簡單防禦了 XSRF/CSRF 攻擊
但是不一樣的是上一篇文章,你可以純用 .html 去用 AJAX 呼叫,但是這不行只能乖乖地開 Page
維持上一篇我們簡單建立一個 Page 來當作 Service ,跟原本不一樣的 就是不用加上 [IgnoreAntiforgeryToken]
SimpleEchoPostAFT.cshtml
SimpleEchoPostAFT.cshtml.cs
現在來看呼叫端
這時候在 Razor Page 部分 即使畫面沒有 Form 你可以使用 @Html.AntiForgeryToken() 將頁面直接擁有
<input name="__RequestVerificationToken" type="hidden" value="VerificationTokenValue" />
IgnoreAntiforgeryTokenTest.cshtml
這時候前端畫面就會 render 出來 __RequestVerificationToken 的 input
簡單的說只要畫面的東西就沒有 javascript 做不到的? 提取 __RequestVerificationToken 資料後直接放入 httprequest
就成功了,這跟上一篇文章 ( ASP.NET Core 6.0 - 一種可以將 Page 當 WebAPI 用的方法,但不推薦 ) 各有利弊
就看你的抉擇了..
reference: