我特別想到的登錄表單:禁用CSRF保護有時是合理的嗎?
根據其性質,登錄表單阻止對任意輸入動作 - 沒有一個有效的用戶名和密碼,你只會得到反彈。有什麼理由甚至需要添加authenticity_token
或類似的跨站點請求僞造保護?
我很好奇,如果登錄表單是一個例子CSRF甚至可能是通常是不可取:
鑑於匿名客戶端,它應該被允許與網站接觸的第一點是張貼有效的登錄憑據。 CSRF通過首先要求客戶端執行GET來建立一個匿名會話cookie來防止這種直接交互,該cookie用作其authenticity_token的基礎。然後必須使用登錄憑證回傳令牌。當這裏的實際目標是驗證沒有會話到達並且正在嘗試給出憑證的用戶時,額外的預先步驟似乎毫無意義。
我在這種情況下缺少一些安全考慮因素嗎?
感謝您的鏈接,這是很好的閱讀。我認爲在提交證書前,Web服務API是一個合理的地方,客戶端不必首先獲取登錄頁面。 – 2011-10-02 03:14:17
如果它是一個Web服務,並且您只是在響應(未設置Cookie)中爲將來的請求發送令牌(這不應該成爲問題),因爲它不會對用戶造成任何副作用。 – Gelatin 2011-10-02 10:56:19