R5秋 午後問1 設問4
広告
jataroさん
(No.1)
IPA解答「スクリプトから別ドメインのURLに対してcookieが送られない仕組み」
私の解答「同一オリジンポリシーによって、別ドメインのcookieは読み出せない仕組み」
別ドメインのcookieはdocument.cookieで読み出せないという仕様を思い出して、この解答が咄嗟に出てきたのですが、この解答ではマズイのでしょうか。
「送られない仕組み」だと、「document.cookieでは読み出せはするが送れない」という感じに受け取ってしまいました。
私の解答「同一オリジンポリシーによって、別ドメインのcookieは読み出せない仕組み」
別ドメインのcookieはdocument.cookieで読み出せないという仕様を思い出して、この解答が咄嗟に出てきたのですが、この解答ではマズイのでしょうか。
「送られない仕組み」だと、「document.cookieでは読み出せはするが送れない」という感じに受け取ってしまいました。
2024.08.25 22:48
むぐむぐさん
(No.2)
攻撃が成功しない原因について誤解が生じているようです。
失敗する原因は図4の1~5行目のXMLHttpRequestにおいて、別ドメインのURLに対してcookieが送信されないため、プロフィールページへのアクセス時にセッションエラーを起こし、トークンの取得に失敗するからです。
XMLHttpRequestを使用したリクエスト時に、同一オリジンの場合はブラウザからcookieをヘッダにつけたリクエストが送信されますが、異なるオリジンからの場合は「xhr.withCredentials = true;」がなければcookieは送信されません。
よって攻撃者のサイトからスクリプトを実行してもcookieが送信されず、セッションエラーとなってしまいトークンの取得に失敗し、アップロードはトークンエラーで失敗します。
よって回答は「スクリプトから別ドメインのURLに対してcookieが送られない仕組み」となります。
document.cookieが読みだせるかどうかに関係なく失敗するため、「同一オリジンポリシーによって、別ドメインのcookieは読み出せない仕組み」は根本の原因ではなく、解答として不適切であると考えます。
失敗する原因は図4の1~5行目のXMLHttpRequestにおいて、別ドメインのURLに対してcookieが送信されないため、プロフィールページへのアクセス時にセッションエラーを起こし、トークンの取得に失敗するからです。
XMLHttpRequestを使用したリクエスト時に、同一オリジンの場合はブラウザからcookieをヘッダにつけたリクエストが送信されますが、異なるオリジンからの場合は「xhr.withCredentials = true;」がなければcookieは送信されません。
よって攻撃者のサイトからスクリプトを実行してもcookieが送信されず、セッションエラーとなってしまいトークンの取得に失敗し、アップロードはトークンエラーで失敗します。
よって回答は「スクリプトから別ドメインのURLに対してcookieが送られない仕組み」となります。
document.cookieが読みだせるかどうかに関係なく失敗するため、「同一オリジンポリシーによって、別ドメインのcookieは読み出せない仕組み」は根本の原因ではなく、解答として不適切であると考えます。
2024.08.26 11:40
jataroさん
(No.3)
ご回答ありがとうございます。
プロフィールページに向けたcookieはそもそも送信されず(なぜなら「攻撃者ドメイン→プロフィールページ」という異なるオリジン間でのやり取りだから)、
document.cookieの中身を取り出す処理は実行されない。取り出す云々以前の問題。
依って、「読み出す」という答え方は不適切である、という認識でよろしいでしょうか?
プロフィールページに向けたcookieはそもそも送信されず(なぜなら「攻撃者ドメイン→プロフィールページ」という異なるオリジン間でのやり取りだから)、
document.cookieの中身を取り出す処理は実行されない。取り出す云々以前の問題。
依って、「読み出す」という答え方は不適切である、という認識でよろしいでしょうか?
2024.08.26 14:19
むぐむぐさん
(No.4)
「同一オリジンポリシーによって、別ドメインのcookieは読み出せない仕組み」という回答は、おそらく図4の13行目のdocument.cookieに対する回答になっていると思われます。
しかし、5行目のリクエストに対するレスポンスからトークンを取得できなかったことが原因であり、13行目への指摘は5行目でトークンを取得できた場合にのみ考慮すべき問題なので回答としては不適切であると考えます。
5行目の時点ではcookieを読みだそうとしていないので「読み出す」という書き方ではなく、注目すべき点がずれていないでしょうか?という内容です。
私の想定が間違っていたら申し訳ないです。
※厳密にはレスポンスとしてエラーページorログイン画面へのリダイレクト等が返ってくるとは思うので、図4の13行目は実行されると思います。
しかし、5行目のリクエストに対するレスポンスからトークンを取得できなかったことが原因であり、13行目への指摘は5行目でトークンを取得できた場合にのみ考慮すべき問題なので回答としては不適切であると考えます。
5行目の時点ではcookieを読みだそうとしていないので「読み出す」という書き方ではなく、注目すべき点がずれていないでしょうか?という内容です。
私の想定が間違っていたら申し訳ないです。
※厳密にはレスポンスとしてエラーページorログイン画面へのリダイレクト等が返ってくるとは思うので、図4の13行目は実行されると思います。
2024.08.26 14:50
pixさん
★SC ダイヤモンドマイスター
(No.5)
横から失礼いたします。
本設問は
「・・・,【Webブラウザの仕組み】によって攻撃は成立しない、この仕組みを
40字以内で答えよ。」
です。
つまり、解答は
・【Webブラウザの仕組み】(cookieの送信について)を答える
・同一オリジンポリシーの仕組み(cookieの読み出しについて)を
答えるのではない
ということです。
本設問は
「・・・,【Webブラウザの仕組み】によって攻撃は成立しない、この仕組みを
40字以内で答えよ。」
です。
つまり、解答は
・【Webブラウザの仕組み】(cookieの送信について)を答える
・同一オリジンポリシーの仕組み(cookieの読み出しについて)を
答えるのではない
ということです。
2024.08.26 14:53
むぐむぐさん
(No.6)
訂正します。
※厳密にはレスポンスとしてエラーページorログイン画面へのリダイレクト等が返ってくるとは思うので、図4の13行目は実行されると思います。
ですが、レスポンスは返ってきますが、SOPによりでブラウザに処理止められますね。
※厳密にはレスポンスとしてエラーページorログイン画面へのリダイレクト等が返ってくるとは思うので、図4の13行目は実行されると思います。
ですが、レスポンスは返ってきますが、SOPによりでブラウザに処理止められますね。
2024.08.26 15:36
jataroさん
(No.7)
もしかしたら、私の前提認識が間違っていたのかもしれません。
Cookieの読み出し自体、ブラウザの仕組みだと思っていたのですが、これは間違っている認識でしょうか?
確かに、言語依存で読み出しを行うので違う気はしますが…教えていただければと思います
Cookieの読み出し自体、ブラウザの仕組みだと思っていたのですが、これは間違っている認識でしょうか?
確かに、言語依存で読み出しを行うので違う気はしますが…教えていただければと思います
2024.08.26 15:54
jataroさん
(No.8)
むぐむぐさん
確かに、onLoadなのでエラーページでも何でもレスポンスさえ返ってくれば処理は試されますね。
ありがとうございます。
確かに、onLoadなのでエラーページでも何でもレスポンスさえ返ってくれば処理は試されますね。
ありがとうございます。
2024.08.26 17:00
むぐむぐさん
(No.9)
>Cookieの読み出し自体、ブラウザの仕組みだと思っていた
この部分が何を指しているのかわかりません。
ブラウザの動作とjsの動作を混同されているような気がします。
2024.08.26 18:44
jataroさん
(No.10)
むぐむぐさん
仰る通り、混同しておりました。
js独自の動作を、「ブラウザの動作」と勘違いしておりました。
完全に知識不足でございます。
むぐむぐさん、pixさんお二人の解説で納得が行きました。
ありがとうございました。
仰る通り、混同しておりました。
js独自の動作を、「ブラウザの動作」と勘違いしておりました。
完全に知識不足でございます。
むぐむぐさん、pixさんお二人の解説で納得が行きました。
ありがとうございました。
2024.08.26 19:10
広告
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
広告