HTML5 のセキュリティ問題について勉強しています。Shreeraj Shah のプレゼンテーションはすべて見ました。withCredentials タグを true に設定して (応答メッセージで Cookie を再生する必要があります)、リクエストで Content-Type セットを text/plain に追加して (プリフライト呼び出しをバイパスするため)、自分のサーバーで基本的な CSRF 攻撃をシミュレートしようとしました。 . 攻撃を開始しようとすると、Access-Control-Allow-Origin ヘッダーが原因で XMLHttpRequest を実行できないとブラウザから通知されました。そのため、被害者の Web ページのヘッダーに * を挿入すると、withCredentials を true に設定してリクエストを送信すると、* 文字は使用できないとブラウザーに通知されました。同じドメインに保存されているWebアプリで同じものを作ろうとしましたが、すべてうまくいきました(ブラウザがそうでないためだと思います。
この種の問題を回避するために、最新のブラウザーが最近設定した新機能ですか? Shreeraj のビデオでは、リクエストが異なるドメインにまたがっており、それが機能したためです...
ありがとう、そして私の英語でごめんなさい:-)
編集:
Shreeraj のプレゼンテーションのように、CSRF 攻撃がうまく機能しない理由を見つけたと思います。2010 年に公開された以前の CORS ドキュメントを読んだところ、Access-Control-Allow-Origin が * に設定されている場合に with credential フラグが true に設定されているという推奨事項がないことがわかりましたが、最後の 2 つを見るとCORS に関する出版物 (2012 および 2013) のセクション 6.1 では、Access-Control-Allow-Origin が *.
リンクは次のとおりです。
以前のもの (2010): http://www.w3.org/TR/2010/WD-cors-20100727/
最後の 2 つ (2012 年、2013 年): http://www.w3.org/TR/2012/WD-cors-20120403/ --- http://www.w3.org/TR/cors/
これが私が話しているセクションです:http://www.w3.org/TR/cors/#supports-credentials
前の文書を見ても、見つからないのです。
これが、2012 年に Shreeraj Shah によって行われた単純な CSRF 攻撃が機能しない理由だと思います (もちろん、w3c の推奨事項に従う最新のブラウザーでは)。それは可能性が?