回答編集履歴
2
編集途中で更新されてしまったので、
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
クロスサイト
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するなどにより)「更新ボタン押下」を実行することはできません。従って、トークンの入った
|