カテゴリー:
HTTP
閲覧数:369 配信日:2018-01-31 21:24
リクエスト処理の流れ
Originを越えるアクセス
・ブラウザからサーバに送られるHTTPリクエストヘッダに、Originというフィールドが含まれる
GET /status/89 HTTP/1.1
Origin: http://www.yahoo.co.jp
Origin: http://www.yahoo.co.jp
「Origin内容が信頼できるWebサイト」からのリクエストのみ許可する場合には?
・HTTPレスポンスヘッダに、下記内容を追加
HTTP/1.1 200 OK
Access-Control-Allow-Origin: www.yahoo.co.jp
Access-Control-Allow-Origin: www.yahoo.co.jp
何れのWebサイトからも、Originを越えるアクセスを許可する場合には?
・ワイルドカードで指定することが可能(サブドメイン等の部分指定は不可)
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: *
.htaccess ファイル使用例
「http://www.yahoo.co.jp:8080」からのみ、Resource Sharing を許可
Header append Access-Control-Allow-Origin: "http://www.yahoo.co.jp:8080"
「http://www.yahoo.co.jp」と「http://www.google.co.jp」からのみ、Resource Sharing を許可
Header append Access-Control-Allow-Origin: "http://yahoo.co.jp http://www.google.co.jp"
すべてのサイトから、リソースシェアリングを許可
Header append Access-Control-Allow-Origin: "*"
PHP使用例
すべてのサイトから、リソースシェアリングを許可
<?php
header("Access-Control-Allow-Origin: *");
?>
LINK
W3C 仕様書
・Cross-Origin Resource Sharing
MDN
・オリジン間リソース共有 (CORS)
・Cross-Origin Resource Sharing (CORS)