2011-07-15 109 views
1

據我所知,跨站點請求僞造攻擊他們「僅」用於更改服務器端的狀態。CSRF保護僅適用於帶有副作用的請求(POST,DELETE,PUT)?

假設:

  • 我有一個REST Web應用程序,我相信HTTP GET請求並沒有改變我的應用程序持續狀態(無副作用)
  • 我使用特定的會話密鑰來授權請求

我需要驗證GET請求的會話專用密鑰嗎?

回答

2

這不是真正的請求方法問題(GET和POST都可以對持久狀態進行更改),因爲每種方法都可以被各種CSRF攻擊媒介利用。當你談論「特定於會話的密鑰」時,我假設你正在討論同步器令牌模式(更多內容請見OWASP Top 10 for .NET developers part 5: Cross-Site Request Forgery (CSRF))。顯然,這是爲了防止瀏覽器在第三方的協調下代表未經授權的請求。

所以這個問題真的是「我的應用程序需要防止CSRF嗎?」聽起來好像應用程序中的持久數據沒有變化,因此表面上的答案是「否」。您通常只會在CSRF攻擊會產生不利影響的地方發現反請求僞造令牌,因此在我看來這是您不需要擔心的事情。

+0

@Tryo Hunt:不,問題是:我是否需要保護不會改變我的應用程序狀態的請求。 (我的應用程序改變了它的狀態 - 但僅限於POST,DELTE和PUT請求)。 – Ralph

+1

我回答說,漫長的道路上,最後一句話有你想要的 - 「不」。 –

+0

對不起,我必須兩次閱讀答案 – Ralph

相關問題