--
このメールは Google グループのグループ「「体系的に学ぶ 安全なWebアプリケーションの作り方」サポートML」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには wasbook-reade...@googlegroups.com にメールを送信してください。
このディスカッションを表示するには、https://groups.google.com/d/msgid/wasbook-readers/04992b62-f39a-489a-8ce9-c0529dba5c13n%40googlegroups.com にアクセスしてください。
このディスカッションを表示するには、https://groups.google.com/d/msgid/wasbook-readers/fc5924a4-6dc3-47d1-bd97-154fb4839176n%40googlegroups.com にアクセスしてください。
このディスカッションを表示するには、https://groups.google.com/d/msgid/wasbook-readers/dbd59fe2-eb9b-485d-8e1d-2bb5d44ca9ebn%40googlegroups.com にアクセスしてください。
このディスカッションを表示するには、https://groups.google.com/d/msgid/wasbook-readers/3941d6a8-471d-4ff7-8412-4bb1cc3083e0n%40googlegroups.com にアクセスしてください。
このディスカッションを表示するには、https://groups.google.com/d/msgid/wasbook-readers/44ba5e57-5e49-4e93-b162-c271bf1ad7e1n%40googlegroups.com にアクセスしてください。
このディスカッションを表示するには、https://groups.google.com/d/msgid/wasbook-readers/86239280-c463-4e05-bf6e-a73f14d29c38n%40googlegroups.com にアクセスしてください。
このディスカッションを表示するには、https://groups.google.com/d/msgid/wasbook-readers/6ac75d70-f413-4869-b18a-aa0cfda8a12en%40googlegroups.com にアクセスしてください。
このディスカッションを表示するには、https://groups.google.com/d/msgid/wasbook-readers/2338566a-d701-4f8d-b705-c4e39b72e8fdn%40googlegroups.com にアクセスしてください。
このディスカッションを表示するには、https://groups.google.com/d/msgid/wasbook-readers/55181b89-7910-42c8-b92a-71b45944eb00n%40googlegroups.com にアクセスしてください。
このディスカッションを表示するには、https://groups.google.com/d/msgid/wasbook-readers/ee04cd91-52d5-447d-938c-857c5f0bdb74n%40googlegroups.com にアクセスしてください。
徳丸様、いつもお世話になっております。
ご回答ありがとうございます。
プログラム(33-004a.php)をよく読んでみようと思います。
プログラムを下記文面に示します。
PHRにてOPTIONメソッド使用時
・Originヘッダがhttp://B
→ACAO、 ACAH、ACAMヘッダなどをhttpレスポンスに設定する
・Originヘッダがhttp://Bではない
→「このリクエストは継続できません」をhttpレスポンスに設定する
PHRにてOPTIONメソッド以外使用時
→「die(Invalid Request)」が実行される
→⑦httpリクエストはPOSTメソッド使用なのでdie関数が実行された
「33-004b.php」は上記に、
「httpリクエストにてPOSTメソッド使用時」のelse if文が追加されてるので、
「PHRあり(完成)」ではACAOヘッダがhttpレスポンスで返された、ということですね。
「33-004b.php」のACAMヘッダを見るとGETも許可されているので、
「httpリクエストにてGETメソッド使用時」のelse if文も追加しないと、エラーが発生すると感じました。
今回の例では、httpリクエストでGETメソッドは未使用なので問題なしと理解しております。
このディスカッションを表示するには、https://groups.google.com/d/msgid/wasbook-readers/6b7fb7c7-42ca-432b-bd57-bfc00b656ac5n%40googlegroups.com にアクセスしてください。
徳丸様、いつもお世話になっております。
ご回答ありがとうございます。大変勉強になります。
引き続き勉強を続けます。
CORS成立時のcookie送信についてですが、BにてwithCredentials=trueを記載すると、WEBブラウザからAへの httpリクエストにcookieが付与されます。
①
このcookieは、Bで発行されたものと認識してよろしいでしょうか?
②
①が正しい場合、BからWEBブラウザへのXMLHttpRequestの中身をOWASP ZAPで確認する方法はないでしょうか?
WEBブラウザ→AのhttpリクエストとB→WEBブラウザのXMLHttpRequestが、同じcookieを持っているのか確認したいです。
書籍に載っていたブレークポイントが使えますでしょうか?まだ検証前ですので帰宅後に試します。
このディスカッションを表示するには、https://groups.google.com/d/msgid/wasbook-readers/6d19d494-ce90-4989-8f3e-8b5d3130c13bn%40googlegroups.com にアクセスしてください。
徳丸様、いつもお世話になっております。
CORSの検証環境「プリフライトリクエスト(以下、PFR)なし」(以下、対象環境)についてです。
1
WEBブラウザはAPIサーバに対して
XMLHtpRequest(以下、XHR)を発言する直前に、XHRの内容(「content-type」が「application/json」になっている、など)を基にシンプルなリクエストではないと判断して、XHRに先立ってPFR発信要と判断する、という認識ですが合ってますでしょうか。
2
「1」が正しい場合、対象環境のようなタイトルが付けられているのはなぜでしょうか。
推測すると、PFRを受言したAPIサーバがCORSへッダ(Access-Control-Allow-Headersヘッダ、など)をhttpレスポンスに設定する仕様になっておらず、WEBブラウザがAPIサーバからhttpレスポンスを受信した際にCORSエラーを発生させるため、PFRなしではXHR発言まで処理が辿り着かない、という意味で対象環境のようなタイトルが付けられている、と思いました。
合っておりますでしょうか。
> 1 WEBブラウザはAPIサーバに対して
. XMLHtpRequest(以下、XHR)を発言する直前に、XHRの内容(「content-type」が「application/json」になっている、など)を基にシンプルなリクエストではないと判断して、XHRに先立ってPFR発信要と判断する、という認識ですが合ってますでしょうか。
はい、ご認識のとおりです。
> 2 「1」が正しい場合、対象環境のようなタイトルが付けられているのはなぜでしょうか。
これは演習環境において「33-003 :プリフライトリクエストなし」のようなタイトルがついていることに対するご質問かと思いますが、アプリケーション側でプリフライトリクエストの対応をしていない、という意図です。
このディスカッションを表示するには、https://groups.google.com/d/msgid/wasbook-readers/adf022be-6573-4758-bede-7d04073a8199n%40googlegroups.com にアクセスしてください。
徳丸様、大変ご無沙汰しております。
少し仕事など人生に迷走しておりました。というか途中です。
ご回答ありがとうございます。
「2」の質問についてですが、ご回答頂いた通りです。
対象環境のタイトルである「プリフライトリクエストなし」は、
「アプリケーション側にてプリフライトリクエストに対応する仕様がなし」と理解しました。
今後ともよろしくお願い致します。