2011-04-21 87 views
4

我目前正在學習更多關於CSRF的知識,並且我有一個關於cookie的基本問題。從Jeff Atwood's article on CSRF基本cookie和CSRF問題

「當一個POST請求被髮送到 網站,請求只應 視爲有效,如果形態價值和 cookie的值是相同的。當一個 攻擊者提交的表單。代表 用戶,他只能修改 值的形式。攻擊者無法從服務器讀取發送的任何 數據或修改 cookie值,每同源 政策。這意味着,當一個 攻擊者就可以發送任何他想要的值 與表格,他會無法 修改或讀取存儲在 cookie中的值。「

如果Cookie a piece of text stored on a users computer他們怎麼不能修改/讀取一個cookie的價值?

如果他們知道cookie的價值,並且可以看到隱藏在表單中的僞隨機值,他們是否擁有執行攻擊所需的全部內容?

感謝,

回答

3

同源策略意味着攻擊網站無法從另一個域讀取的cookie。請參閱http://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy_for_cookies

我們沒有談論在用戶計算機上擁有Rootkit或類似軟件的攻擊者,CSRF保護的是一個惡意服務器,它具有用戶通過POST請求向域惡意服務器想要攻擊。由於惡意服務器無法從目標域讀取cookie,因此無法正確填寫正在發送的POST請求的CSRF字段。

2

這是指的是同步器令牌模式。它通常意味着一個表單包含一個隱藏字段,該字段的值對該用戶的會話是唯一的。相同的值存儲在用戶機器的cookie中。提交表單時,兩個值都會檢查匹配項。

這種方法的優點是,如果惡意網站試圖構建對合法網站的發佈請求,它不會知道隱藏的表單值。這是一個非常複雜的過程。

攻擊性網站無法讀取或操作cookie值,因爲它是從其他域發出的。更多關於這個(包括一個工作的例子)在這裏:OWASP Top 10 for .NET developers part 5: Cross-Site Request Forgery (CSRF)

+1

他們可以從查看頁面源獲得隱藏的表單值...我不明白 – barfoon 2011-04-26 13:56:58

+3

是的,但這是一個相當不同的攻擊向量CSRF它只是簡單地暗中請求一個URL,如(或使用中間郵件來構建POST請求)。看看CSRF上的OWASP頁面,它可以更深入地解釋它:https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet – 2011-04-26 20:58:31