Access-Control-Allow-Origin 複数のオリジンドメイン? 質問する

Access-Control-Allow-Origin 複数のオリジンドメイン? 質問する

ヘッダーを使用して複数のクロスドメインを許可する方法はありますかAccess-Control-Allow-Origin?

については承知しています*が、あまりにもオープンです。本当に許可したいのは、ほんの数個のドメインだけです。

たとえば、次のようになります。

Access-Control-Allow-Origin: http://domain1.example, http://domain2.example

上記のコードを試してみましたが、Firefox では動作しないようです。

複数のドメインを指定することは可能ですか、それとも 1 つのドメインだけに限定されますか?

ベストアンサー1

推奨される方法は、サーバーにクライアントからの Origin ヘッダーを読み取らせ、それを許可したいドメインのリストと比較し、一致する場合は、ヘッダーの値を応答のヘッダーOriginとしてクライアントにエコーバックすることのようですAccess-Control-Allow-Origin

次のように.htaccessすればできます:

# ----------------------------------------------------------------------
# Allow loading of external fonts
# ----------------------------------------------------------------------
<FilesMatch "\.(ttf|otf|eot|woff|woff2)$">
    <IfModule mod_headers.c>
        SetEnvIf Origin "http(s)?://(www\.)?(google.com|staging.google.com|development.google.com|otherdomain.example|dev02.otherdomain.example)$" AccessControlAllowOrigin=$0
        Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
        Header merge Vary Origin
    </IfModule>
</FilesMatch>

おすすめ記事