質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

FuelPHP

FuelPHPは、軽量高速で開発が可能なPHPのWebアプリケーションフレームワークです。

CSRF

クロスサイトリクエストフォージェリ (Cross site request forgeries、CSRF)は、 外部Webページから、HTTPリクエストによって、 Webサイトの機能の一部が実行されてしまうWWWにおける攻撃手法です。

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

Q&A

解決済

1回答

304閲覧

ユーザーがログイン中に、自分でcookieを削除してしまった時のログアウト操作の実装に関して

tama2015

総合スコア63

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

FuelPHP

FuelPHPは、軽量高速で開発が可能なPHPのWebアプリケーションフレームワークです。

CSRF

クロスサイトリクエストフォージェリ (Cross site request forgeries、CSRF)は、 外部Webページから、HTTPリクエストによって、 Webサイトの機能の一部が実行されてしまうWWWにおける攻撃手法です。

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

0グッド

0クリップ

投稿2017/10/01 12:54

サーバー側APIは、Fuelphp、フロントはAngularJSwebアプリを作成しております。
CSRF対策として、FuelphpCSRF対策用のCookieを発行して、AngularJS側でカスタムヘッダーにその
Cookieを乗せてサーバー側で検証するようにしています。

この状況下で、ユーザーが自分でCSRF対策のcookieを削除してしまった後に、ユーザーが
ログアウト操作をした場合に、サーバー側でログアウト状態としてそのレスポンスと返すとすると、
CSRFの攻撃でLogout用のAPIが狙われた場合に、サーバー側はログアウト状態にしてしまいます。

つまり、攻撃が成功してしまいます。

逆に、
ユーザーが自分でcookieを削除してしまった後にユーザーがログアウト操作をした場合にサーバー
側で何も状態を変更しないと、ユーザーはいつまでもログイン状態のままでログアウト出来ない
状態に陥ります。

こういう場合は、webアプリとしてどのように、実装・対策すれば良いのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ユーザーが自分でCSRF対策のcookieを削除してしまった後に

全削除ならもちろんあり得ることなのですが(それなら自然とログイン自体も抜ける)、「一部のクッキーだけ消す」なんていう操作をする人は、一般ユーザーではありません

少し誇張して言えば、システムの整合性を崩す、攻撃者に近い存在なので、「このユーザー自身に起きる挙動」は気にしなくて構いません。

投稿2017/10/01 23:27

編集2017/10/01 23:28
maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tama2015

2017/10/03 10:32

回答ありがとうございます。 cookie全削除なら、サーバー側でログアウトを抜ける動作のみでokで csrf用のcookieだけ削除するユーザーは普通のユーザーではないので 対処は不要ということなんですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問