2019年9月19日 星期四

ASP.NET (WebForm) 防範 CSRF攻擊

ASP.NET (WebForm) 防範 CSRF攻擊
關鍵字  AntiForgery Token / cross-site request forgery (CSRF攻擊) 

從 NuGet安裝「Microsoft.AspNet.WebPages」套件
使用AntiForgery.GetHtml() 來生成一個隱藏的token
下面的影片,是寫在 Page_Init事件中。

https://youtu.be/-DswQCwVqxk 


相關文章 --  ASP.NET WebForm中異步請求防止XSRF攻擊的方法

https://read01.com/zh-tw/D5kj44.html

其他作法 -- 採用  System.Web.Helpers


建置專案時發生錯誤 剖析器錯誤 - VS2019 + ASP.NET專題實務(VB範例)

有位讀者安裝 VS2019以後,執行 VB範例(ASP.NET Web Form)均會出現錯誤訊息
例如:剖析器錯誤 或 出現一個蹦現視窗,寫著 "建置專案時發生錯誤......"  

"找不到資源"

或 出現 Global.asxa有錯(如下面這一段)....等等
<@ Application codebehind="Global.asax.vb" ....

有幾種解法,問題都是出現在VB語法的範例。 C#就沒有問題。

https://youtu.be/4mGMr3xTQN4




(1) 解決方法如下:

第一,建立一個 ASP.NET (Web Form) VB語法 專案
      (建議使用「空白」專案或網站,比較單純)

第二,在一開始、最單純、什麼都沒有的空白專案中「建置專案
然後,再來撰寫程式(自己新增一個Web Form網頁)
或  COPY 書本的範例到這個專案、網站

就會正常了.....請看下方的圖片說明

===================================================
(2) 另一種解決方法

我在另一台電腦上,安裝VS 2019(比較新的版本,他常改版更新)
有安裝「網站」套件,請看下面的影片說明。

影片(您安裝時少裝了一個東西,在影片 08:11 的時候有說明)
(如下方圖片說明)

在這個環境中,從頭到尾都沒有問題
所以我猜測,有安裝這套件會比較OK。

===================================================
(3) 讀者的回饋(他的解法)

安裝VS2019的時候,將個別元件中 “所有” .net framework版本選擇安裝,
執行後置碼已不會出現 "建置專案時發生錯誤" 訊息。