2013-03-12 296 views
2

我們最近跑了Appscan能夠aganist的申請,並於幾頁的報告顯示: 了以下更改應用到原始請求:asp.net和跨站請求僞造

  • 設置HTTP頭爲' http://bogus.referer.ibm.com'
    推理:
    相同的請求在不同的會話中發送了兩次並收到相同的響應。 這表明沒有任何參數是動態的(會話標識符僅在 Cookie中發送),因此應用程序容易受到此問題的影響。

我有點困惑就如何處理這個問題,我應該只是看Request.UrlReferrer,並確保它是相同的主機什麼的URL或者是有更好的方式來處理呢?

謝謝。

+2

並非所有瀏覽器都發送'Referer'標頭。您應該使用CSRF令牌。 – SLaks 2013-03-12 15:38:56

+3

引薦者與問題沒有直接關係 - AppScan僅在失敗時嘗試使用其他引薦來源的請求。忽略那一點; 「推理」更好地描述了這個問題。 – bobince 2013-03-12 17:28:10

+0

再次看完之後,我相信我會看到可能發生的事情。我在註銷時有Session.Abandon(),但是如果會話只是在用戶沒有做任何事情的情況下到期,那麼就沒有放棄,也許這就是應用程序可以獲得兩次相同響應的方式,因爲會話cookie不會被丟棄,而只是再次拾起 – Paritosh 2013-03-12 18:22:52

回答

2

Referrer頭可能很容易被欺騙。您需要使用CSRF令牌(我建議同步器令牌模式),以證明請求的來源。有你應該閱讀的an awesome resource at OWASP。祝你好運!

+2

除了Freedom_Ben的回答之外,如果您使用的是MVC,則可以使用烘焙且易於使用的AntiForgeryToken。基本上你使用Html助手來創建令牌,然後一個屬性被添加到post方法中,它將爲你驗證令牌。更多信息可以在這裏找到:http://msdn.microsoft.com/en-us/library/system.web.mvc.htmlhelper.antiforgerytoken(v=vs.100).aspx – 2013-03-12 16:21:53

相關問題