回答編集履歴

2

編集途中で更新されてしまったので、

2018/01/16 01:52

投稿

mit0223
mit0223

スコア3401

test CHANGED
@@ -42,4 +42,4 @@
42
42
 
43
43
 
44
44
 
45
- もう一点、この防御方法が前提としているブラウザの仕様があります。それは、CSRF攻撃で単発のリクエストを発行することはできても、その結果を参照したり操作したりすることはできないということです。「初期表示時にHTMLにトークンをhiddenで設定し」→「更新ボタン押下後、HTMLのトークンをサーバーサイドに渡す」の2つのリクエストを攻撃サイトが連続して発行することができてしまうと、上記防御は成り立ちませんが、初期表示のリクエストはできても、そこから(たとえば、 javascript から form の submitするなどにより)「更新ボタン押下」を実行することはできません。従って、トークンの入った
45
+ もう一点、この防御方法が前提としているブラウザの仕様があります。それは、CSRF攻撃で単発のリクエストを発行することはできても、その結果を参照したり操作したりすることはできないということです。「初期表示時にHTMLにトークンをhiddenで設定し」→「更新ボタン押下後、HTMLのトークンをサーバーサイドに渡す」の2つのリクエストを攻撃サイトが連続して発行することができてしまうと、上記防御は成り立ちませんが、初期表示のリクエストはできても、そこから(たとえば、 javascript から form の submitするなどにより)「更新ボタン押下」を実行することはできません。従って、悪意のあるサイからトークンの入ったリクエストを送ることはできないわけです。

1

クロスサイト

2018/01/16 01:52

投稿

mit0223
mit0223

スコア3401

test CHANGED
@@ -38,4 +38,8 @@
38
38
 
39
39
 
40
40
 
41
- このとおりです。ここで、「サーバサイドで session で管理します」となっていますが、その session はユーザがログインしたときに作られたものであり、ログイン時にブラウザにセットされた Cookie に結び付けられています。CSRF攻撃はこのCookieが悪意のあるサイトからのリクエストにも付与されることで成立しますのが、 session に結び付けられている値を外から知ることはできないので、上記手順で防御できるわけです。
41
+ このとおりです。ここで、「サーバサイドで session で管理します」となっていますが、その session はユーザがログインしたときに作られたものであり、ログイン時にブラウザにセットされた Cookie に結び付けられています。CSRF攻撃はこのCookieが悪意のあるサイトからのリクエストにも付与されることで成立しますのが、 session に結び付けられているトークンの値を外から知ることはできないので、上記手順で防御できるわけです。
42
+
43
+
44
+
45
+ もう一点、この防御方法が前提としているブラウザの仕様があります。それは、CSRF攻撃で単発のリクエストを発行することはできても、その結果を参照したり操作したりすることはできないということです。「初期表示時にHTMLにトークンをhiddenで設定し」→「更新ボタン押下後、HTMLのトークンをサーバーサイドに渡す」の2つのリクエストを攻撃サイトが連続して発行することができてしまうと、上記防御は成り立ちませんが、初期表示のリクエストはできても、そこから(たとえば、 javascript から form の submitするなどにより)「更新ボタン押下」を実行することはできません。従って、トークンの入った