2012-01-02 56 views

回答

5

一般來說,你不知道。你所說的攻擊是一個跨站點請求僞造(CSRF)。這種類型的攻擊依賴於已登錄的用戶(如果您登錄到站點A和站點B並且站點A知道這一點,他們可以將html代碼放入,這會導致請求轉到站點B,看起來像你啓動它並可能導致執行敏感操作)。這些攻擊依靠瀏覽器發送會話cookie /令牌以及所有請求到相關站點(站點A包括請求站點B執行操作X,這導致瀏覽器向站點B發送請求,因此包括所有cookie ,包括會話cookie,以該請求發送到站點B)。

反CSRF令牌的工作原理是因爲當您向客戶端發送請求表單時,會包含客戶端必須發回的無法推測的值及其操作請求。如果它回來了,您知道要執行的操作的請求始於您發送給客戶的表單。如果它沒有回來,請求可能是僞造的,所以你應該忽略它。如果站點A上的代碼導致請求被髮送到站點B,即使使用站點B的會話cookie,站點A上的代碼也不會知道要包含的反CSRF標記值,所以僞造的請求將被拒絕。因此,如果您試圖防範您的站點上的CSRF攻擊,則需要將這些令牌包含在所有可啓動敏感操作的表單中,以防止僞造的請求利用已登錄的用戶。這種防禦對於未登錄的用戶是無關緊要的,因爲另一個站點不能利用瀏覽器將會話cookie /令牌與所有請求一起發送的事實,如果用戶當前沒有登錄。

+2

對CSRF的很好的解釋用簡單的話來說! – Romias 2012-01-02 01:52:25

+0

我也應該指出我說「一般」。有一種攻擊可能需要緩解,CSRF的一種變體有時稱爲「登錄CSRF」。攻擊者不會欺騙您向已登錄的站點提交請求,而可能誘騙您使用其他/不是您的憑據登錄到站點,以便該站點將您視爲另一個用戶。例如,如果他在他的不相關網站上包含Google的登錄代碼,並且您的瀏覽器看到並執行了該代碼,那麼您將以攻擊者控制的用戶身份登錄Google。然後,當你搜索時,以爲你沒有登錄, – jeffsix 2012-01-02 13:19:54

+0

你真的會和谷歌會跟蹤你的搜索歷史(假設的例子)。攻擊者隨後可以使用這些憑證登錄,並查看您搜索的內容。這是一個與CSRF攻擊不同但非常相關的攻擊,並且可以通過在登錄頁面上放置CSRF令牌來緩解這種攻擊,如果這是一個相關的用例,並且這是您關心的緩解措施。 – jeffsix 2012-01-02 13:21:03