PHPでのCORSの設定 – PHPで始めるプログラミング
PHPでウェブアプリケーションを開発する際、CORS(Cross-Origin Resource Sharing)の設定が必要になることがあります。これは、他のドメインからのリクエストを許可するかどうかを決定するための仕組みです。この記事では、PHPでのCORS設定の方法について説明します。
CORSとは?
CORS (Cross-Origin Resource Sharing) とは、ウェブブラウザによって適用されるセキュリティ機構であり、あるドメインから別のドメインへのリソースのリクエストを制御します。たとえば、https://example.com
から https://api.anotherdomain.com
へのリクエストの際に必要となります。
CORSの設定手順
- HTTPヘッダーにCORSポリシーを追加する。
- 正しいアクセス制御ヘッダーを設定する。
- 必要な場合はプリフライトリクエストに対応する。
1. HTTPヘッダーにCORSポリシーを追加
最も基本的な設定方法は、レスポンスヘッダーにCORS用のヘッダーを追加することです。以下の例では、任意のオリジンからのリクエストを許可しています。
header("Access-Control-Allow-Origin: *");
2. アクセス制御ヘッダーの設定
さらに、必要に応じて他のヘッダーも追加します。たとえば、特定のメソッドやヘッダーのみを許可する場合:
Access-Control-Allow-Methods
: 許可するHTTPメソッドを指定Access-Control-Allow-Headers
: 許可するHTTPヘッダーを指定
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Authorization");
3. プリフライトリクエスト対応
特定の条件下で、ブラウザは実際のリクエストを送信する前にプリフライトリクエスト(OPTIONSメソッド)を送信します。これに適切に対応する必要があります。
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Authorization");
exit(0);
}
まとめ
CORS設定は、セキュリティとユーザー体験を向上させるために重要です。正しい設定を行うことで、異なるドメイン間でのデータのやり取りがスムーズになります。さらに詳しく(外部リンク)知りたい方は、公式ドキュメントをご確認ください。