CORSリクエストを拒否する方法


5

Access-Control-Allow-OriginCORS(クロスオリジンリソース共有)プリフライトへの応答でHTTPヘッダーが欠落している場合、それは次のことを意味しますか?

  • サーバーはCORSをサポートしていませんか?または、
  • サーバーはアクセスを拒否しますか?

サーバーがCORSをサポートしていない場合、ヘッダーが欠落していることは明らかです。

しかし、CORSをサポートしている場合、アクセスが拒否されるということですか?

そして逆に、CORSを実装するサーバーは、CORSが原因でアクセスが拒否されたことをクライアントにアナウンスするために何をすべきでしょうか?次のようなステータスで応答する必要があります403 Forbiddenか?

私が見つけたソースはすべて、どのヘッダーがクロスドメインアクセスを許可するために追加されるかを説明していますが、アクセスを拒否するために何をすべきかを説明していません。

**編集:間違った質問、私の悪い、以下の説明を参照**

私の質問の焦点は、私が期待したものと比較してトピックから外れているようです。実際、答えはサーバー構成に焦点を当てていますが、私にとって興味深いのはHTTP上のプロトコルでした。

より正確に言うと、クロスリクエストでサーバーにアクセスしようとし、

  • サーバーにCORSヘッダーが含まれていなかったのに、XMLHttpRequestに含まれていた
  • ブラウザはswfメディアによるクロスリクエストを受け入れました
  • メディアのリファラーを確認しましたが、そのiframeは実際にはリクエストのターゲットとは異なりました
  • サーバーがCORSを実装しているかどうかさえ知りませんでした
  • 私はサーバーを所有していません

HTTP内のCORSの理解度が低く、ある種のクロスリクエストが受け入れられたという事実から、サーバーがリクエストを拒否していたのか、何が間違っていたのか疑問に思いました。

それ以来解決したと思うので、回答を投稿します。

回答:


4

クロスドメインアクセスはデフォルトで拒否されますが、セキュリティリスクと見なされます。アクセスを拒否するには、クロスドメインコールを許可する構成を削除する必要があります。

Webサーバーの新規インストールでは、少なくとも私が最近使用したIISの場合、CORSをそのまま使用できません。

CORSを許可(拒否)するためにさまざまなWebサーバーを(非)構成する方法を確認します:http : //enable-cors.org/server.html


リンクされたページが変更されると回答が無効になる可能性があるため、参照リンクから回答の重要な部分を引用してください。
DavidPostill

回答には、参照リンクからの特定の構成は含まれていないため、ページコンテンツに依存しません。
mimo

この回答は元の質問とサーバーに関するもう少しの問題を解決するので、著者の(私の)頭の中でその背後にあるアイデアに対する矛盾を述べるために質問が更新されたとしても、ソリューションとしてチェックし続けます。
リンクアクロ

0

@mimoが言ったように、

クロスドメインアクセスはデフォルトで拒否されます

その後、CORSを無効にするために行うことはありません。元の質問によく答えます。

編集が説明しているように、どこかでSWFオブジェクトがクロスドメインを行っていたため、この同じドメインからのXMLHttpRequestが拒否されたため、私は部分的に混乱しました。解決策:SWFはXHRポリシー(SOP(同じ起源)またはCORS)にバインドされていません。つまり、XHRがCORSを使用していて失敗している間、サーバーにCORSが実装されておらず、ページ上のメディアもCORSを使用していないという質問をするようになった実験にはまったく問題がなかったことを意味します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.