[解決済み】Access-Control-Allow-Credentialsヘッダーは、具体的に何をするのでしょうか?
質問
CORSの使用方法を理解しようとしているのですが、CORSを使用するための
Access-Control-Allow-Credentials
ヘッダは何をするのですか?
ドキュメント は言う。
リクエストに対するレスポンスの公開の可否を示す credentialsフラグがtrueの場合。
しかし、レスポンスが "exposed"であることの意味がよくわかりません。
このヘッダがtrueに設定されることで、(credentialsフラグがtrueに設定されることと合わせて)実際に何をするのか、誰か説明してくれますか?
どのように解決するのですか?
デフォルトでは、CORS はクロスオリジンリクエストにクッキーを含めません。これは、JSON-P などの他のクロスオリジン技術とは異なる点です。JSON-P は常にリクエストにクッキーを含めますが、この動作は、以下のような脆弱性のクラスにつながる可能性があります。 クロスサイトリクエストフォージェリ CSRFと呼ばれる。
CORSでCSRF脆弱性の可能性を減らすために、CORSではサーバーとクライアントの両方が、リクエストにクッキーを含めても問題ないことを認める必要があります。こうすることで、クッキーは、何の制御もなく受動的に起こるものではなく、能動的に決定されるようになります。
クライアントコード
が必要です。
を設定します。
withCredentials
プロパティは
XMLHttpRequest
から
true
を許可することです。
しかし、このヘッダーだけでは十分ではありません。サーバーは
が必要です。
で応答します。
Access-Control-Allow-Credentials
ヘッダを表示します。このヘッダーで応答することで
true
は、cross-originリクエストにCookie(または他のユーザー認証情報)が含まれることをサーバーが許可していることを意味します。
また ブラウザがサードパーティーのCookieをブロックしていないこと を使用することができます。
セイムオリジン、クロスオリジンリクエストにかかわらず、CSRFからサイトを保護する必要があることに注意してください(特にリクエストがクッキーを含む場合)。
関連
-
[解決済み] Access-Control-Allow-Originヘッダーはどのように機能するのですか?
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] Access-Control-Allow-Origin複数オリジンのドメイン?
-
[解決済み] REST APIからデータを取得しようとしたときに、要求されたリソースに'Access-Control-Allow-Origin'ヘッダーが存在しない。
-
[解決済み] プリフライト要求に対する応答がアクセス制御チェックを通過しない
-
[解決済み] CORSです。資格情報フラグが true の場合、Access-Control-Allow-Origin でワイルドカードを使用できない。
-
[解決済み] リクエストヘッダーフィールドAccess-Control-Allow-Headersはプリフライトレスポンスでそれ自身は許可されません。
-
[解決済み】enctype='multipart/form-data'とはどういう意味ですか?
-
[解決済み】HTTPヘッダーの "Content-Length "フィールドとは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] mp3ダウンロードのレスポンスのためのコンテンツタイプ
-
[解決済み] 403 Forbiddenと401 UnauthorizedのHTTPレスポンスの比較
-
[解決済み] Google ChromeでHTTPヘッダーを表示するにはどうすればよいですか?
-
[解決済み] httpマルチパートリクエストとは何ですか?
-
[解決済み】HTTPヘッダーの "Content-Length "フィールドとは?
-
[解決済み】Axiosが応答ヘッダーフィールドにアクセスできるようになる
-
[解決済み】Access-Control-Allow-Credentialsヘッダーは、具体的に何をするのでしょうか?
-
[解決済み] HTTPヘッダにはどのような文字エンコーディングを使用すればよいですか?
-
[解決済み] HTTPレスポンスヘッダの重複は許容されますか?