我們的webapp的一個組件是(或多或少)SPA。即它使用javascript運行,並且不會生成任何頁面查看或刷新。這可能會導致CSRF令牌過時。尤其是對於手機用戶而言,他們可能會在幾天/幾周後關閉瀏覽器並將其打開。此SPA偶爾需要POST更新到服務器。繞過XHR的CSRF保護安全嗎? (Rails)
我們看到,產生一個422錯誤一些JavaScript POST請求,具有約CSRF保護警告。我很確定CSRF令牌是存在的,但是陳舊。我試圖找到最好的方法。
如果我理解正確,並根據OWASP CSRF Cheat Sheet,XHR請求應該是安全的,只要CORS未在同一端點上打開即可。也就是說,惡意網站無法在沒有javascript的情況下使用XHR標頭製作請求。使用JavaScript,請求應該被阻止,因爲它是跨源的。
唯一的資源I found有一個比較容易混淆的編寫例子CSRF保護爲JSON禁用。我無法確定它是建議這樣做還是避免它。
是否因此安全/不安全關閉未啓用CORS用於在軌道上XHR/JSON請求CSRF保護?
我創建了一個PR來更新Rails文檔。請參閱https://github.com/rails/rails/pull/31640 – gingerlime