rails(APIサーバー)とangular(フロントエンド)でwebアプリケーションを構築しているものです。
認証方式はバックはdevise_token_auth、フロント側はangular-tokenを利用しており、
いわゆるセッション管理による認証ではなく、httpヘッダーにトークンを入れて認証するスタイルです。
モバイルアプリからAPIを利用する際の構成に近いと思います。
質問内容なのですが、いくつかのブログ記事でサーバー側のCSRFチェック機構をオフにするようなセットアップ内容が書かれていました。例えばこちらです
https://qiita.com/wktq/items/8a4653153af47933c169
railsではprotect_from_forgeryを利用してCSRFチェックするのですが、これがオフとされていました。
これは、
「認証方式がトークン式のため、CSRF攻撃者からヘッダー情報に認証用トークンを仕込むことができない(正確には認証用トークンを読み込むことができない)ため、不要としている」
という認識で合っているのでしょうか??
いくつか情報を検索したのですが、確信が持てず...。
ご教示いただけますと幸いです。
<追記: rails, deviseをご利用の同状況の方へ>
- 仮にdevise_token_authとdeviseを同居させる場合、上記例外ケースに該当しないことになります。deviseは基本的にはセッションを利用した認証になりますので、devise_token_auth以外での認証も行う場合はご注意ください。
- その場合はこちらのIssueに記載の内容に則して、application_controllerでなく、overrideしたコントローラーを作成してそちらでprotect_from_forgeryを無効化するのがおすすめです。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/26 05:03