2012-04-01 52 views
2

ASP.NET MVC 4 Beta模板生成的頁面是否可以抵禦跨站點請求僞造?ASP.NET MVC 4 Beta編輯器模板是否對CSRF安全?

具體而言,是由所產生的「編輯」視圖和控制器動作「控制器,讀/寫操作和視圖,使用的EntityFramework」反對CSRF保護?

檢查由編輯表單生成的HTML代碼,我看不到的隱藏字段或另一種方式來實現的防僞標記。

我缺少的東西或者是默認的例子不安全?

+0

我的理解是,生成易受攻擊代碼的模板是一個安全漏洞;我提交了關於[Microsoft連接(bug報告https://connect.microsoft.com/VisualStudio/feedback/details/734975/code-generation-recipes-templates-must-not-generate-code-vulnerable-to-csrf -attacks)。 – 2012-04-01 22:54:47

+0

我會從你的標題,控制器中刪除4個,它們是編輯器模板,而不是控制器模板。這是MVC 2的新增功能,但不適用於MVC 3或MVC 4. – RickAndMSFT 2012-04-02 06:54:40

+0

我明白了,但我想知道的是,如果當前Beta版本已在其默認模板或配方中實施了針對CSRF的保護。我已經知道舊版本沒有。 – 2012-04-02 11:07:47

回答

15

你需要明確落實防僞造令牌。

在視圖:

​​

在控制器

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult MyAction(MyViewModel model) 
{ 
    ... 

你總是可以創建自定義T4模板來生成這個給你,但是不行,出的​​現成模板不要默認這樣做。

+0

謝謝您確認所提供的ASP.NET MVC模板生成易受CSRF攻擊的代碼,並提供有關如何解決此問題的示例代碼。 – 2012-04-01 22:26:03

+0

這不適用於IE。 :(可以幫助我與IE瀏覽器? – 2017-10-10 05:01:24