簡體   English   中英

您如何編寫單元測試來測試ASP.NET Web表單應用程序的CSRF漏洞?

[英]How do you write a unit test to test an ASP.NET web forms application for CSRF vulnerability?

我們有一個ASP.NET Web表單應用程序,可能容易受到跨站點請求偽造(CSRF)攻擊。 我們如何開始編寫一個能夠提醒我們的單元測試? 使用NUnit。 一些提示或指針會很棒。

CSRF是一種攻擊,用戶被欺騙(例如通過電子郵件中的鏈接)代表攻擊者執行操作,同時已在您的網站上進行身份驗證。

有幾種方法可以降低您應該測試的風險 -

  • GET請求不應該有副作用 - 所有操作都應該僅使用POST請求來完成。 攻擊者更難以生成源自用戶的POST請求。
  • 您希望將一個隨機唯一的每頁字符串發送給用戶並在返回服務器時進行檢查。 用戶的cookie將在攻擊者引起的請求中發送,但攻擊者不會知道表單中存儲的字符串。 在.NET中,我認為您可以使用Viewstate。
  • 對於特別敏感(或易受攻擊)的操作或在一段時間不活動后,您可以請求用戶重復驗證

OWASP (由Torbjørn聯系)確實是一個很好的資源,包含更詳細的解釋和建議。

您需要了解CSRF是如何完成的。 進入黑客的思維方式。 然后,您需要創建執行CSRF的自動化測試。 這可能不是單元測試(測試單個單元),更像是集成測試。 當您成功執行CSRF攻擊時 - 當您的測試為紅色時 - 您將能夠解決問題。

有關如何執行攻擊的更多信息,請查看CSRF常見問題解答 這是一篇關於測試CSRF的好文章你應該查看。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM