幾乎所有關於反CSRF機制的文檔都聲明應該在服務器端生成CSRF令牌。不過,我想知道是否有必要。是否需要在服務器端生成反XSRF/CSRF令牌?
我想要實現反CSRF在下列步驟操作:
沒有服務器端生成的CSRF令牌;
在瀏覽器端,在每個AJAX或表單提交中,我們的JavaScript會生成一個隨機字符串作爲標記。在實際的AJAX或表單提交發生之前,該令牌被寫入cookie csrf;並將令牌添加到參數_csrf。
在服務器端,每個請求都應該有餅乾CSRF,並提交論證_csrf。這兩個值進行比較。如果它們不同,則意味着它是CSRF攻擊。
服務器端並不需要發出CSRF令牌,只是做了檢查;並且令牌在瀏覽器端完全生成。當然,這只是針對反CSRF。在服務器端應該有認證過程來驗證用戶ID。
這聽起來是CSRF的有效解決方案,但我不確定爲什麼沒有關於此方法的文檔。
這個反CSRF機制有什麼錯嗎?