webappのコンポーネントは、SPA(多かれ少なかれ)です。つまりjavascriptを使用して実行され、ページビューやリフレッシュを生成しません。これにより、CSRFトークンが古くなる可能性があります。特に携帯電話ユーザーの場合、ブラウザを切り替えて数日後/週後に開く可能性があります。このSPAは、場合によってはサーバーへのPOST更新を必要とします。XHRのCSRF保護をバイパスすることは安全ですか? (Rails)
CSRFの保護に関する警告とともに、422エラーを生成するjavascript POSTリクエストがいくつか表示されます。私は、CSRFトークンが存在することは確かですが、古くなっています。私はその周りに最善の方法を見つけることを試みている。
私が正しく理解し、OWASP CSRF Cheat Sheetによれば、CORSが同じエンドポイントで開いていない限り、XHR要求は安全でなければなりません。つまり、悪意のあるサイトはjavascriptなしでXHRヘッダーを要求することはできません。また、javascriptを使用すると、クロスオリジンであるためリクエストをブロックする必要があります。
唯一のリソースI foundには、jsonに対してCSRF保護が無効になっている、かなり混乱して書かれた例がありました。それを勧めているのか、それとも避けているのかは分からない。
CORSが有効になっていないレールでXHR/json要求のCSRF保護をオフにするのは安全かどうかですか?
Railsのドキュメントを更新するためにPRを作成しました。 https://github.com/rails/rails/pull/31640を参照してください。 – gingerlime