ホームページ バックエンド開発 PHPチュートリアル PHP 開発における Cross-Origin Resource Sharing (CORS) の問題にどう対処するか?

PHP 開発における Cross-Origin Resource Sharing (CORS) の問題にどう対処するか?

Nov 02, 2023 pm 06:39 PM
php cors クロスドメインリクエスト

PHP 開発における Cross-Origin Resource Sharing (CORS) の問題にどう対処するか?

PHP 開発におけるクロスオリジン リソース共有 (CORS) の問題にどう対処するか?

Web 開発では、クロスオリジン リソース共有 (CORS) が一般的な問題です。これは、Web ページがクロスオリジン リソース (たとえば、別のドメイン名から) をリクエストするときに、ブラウザーが特別なメカニズムを使用してリソースへのアクセスをブロックまたは制限することを指します。これはセキュリティとプライバシーを確​​保するためですが、PHP 開発では CORS の問題に対処する必要がある場合があります。では、この問題をどうやって解決すればよいでしょうか?

1. CORS を理解する

CORS メカニズムはブラウザーによって実装されます。現在の Web ページがクロスドメイン リソースを要求していることをブラウザが検出すると、ブラウザはプリフライト リクエスト (OPTIONS) を送信し、サーバーはそのリクエストに対する応答を返し、クロスドメイン リクエストを許可するかどうかをブラウザに伝えます。 。サーバーから返された応答にクロスオリジン要求を許可するヘッダー情報が含まれている場合、ブラウザは実際の要求を送信します。そうしないと、ブラウザにエラーが表示されます。

2. CORS 問題に対処する方法

PHP 開発では、次の方法を使用して CORS 問題に対処できます:

  1. Set Access-Control- Allow-Origin ヘッダー情報

header() 関数を使用して応答ヘッダー情報を設定します。任意のドメイン名からのクロスドメイン アクセスを許可するには、Access-Control-Allow-Origin を "*" に設定します。例:

header("Access-Control-Allow-Origin: *");
ログイン後にコピー

注: Access-Control-Allow-Origin を「*」に設定すると、任意のドメイン名からのクロスドメイン アクセスが許可されるため、セキュリティ リスクが生じる可能性があります。実際の開発では、必要に応じてアクセスを許可するドメイン名を設定することをお勧めします。

  1. Access-Control-Allow-Methods ヘッダー情報の設定

Access-Control-Allow-Methods ヘッダー情報を設定することで、許可されるクロスドメイン リクエストのメソッドを指定できます。たとえば、GET リクエストと POST リクエストのクロスドメイン アクセスを許可する場合、Access-Control-Allow-Methods を「GET、POST」に設定できます。サンプル コードは次のとおりです。

header("Access-Control-Allow-Methods: GET, POST");
ログイン後にコピー
  1. プリフライト リクエストの処理

プリフライト リクエスト (オプション) は、実際のリクエストの前にサーバーをチェックするために使用されます。 PHP コードでは、リクエスト メソッドが OPTIONS の場合、Access-Control-Allow-Origin ヘッダー情報を含むレスポンスが返されることがわかります。例:

if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
  header("Access-Control-Allow-Origin: *");
  header("Access-Control-Allow-Methods: GET, POST");
  exit;
}
ログイン後にコピー

このようにして、プリフライト要求を処理し、クロスドメイン許可ヘッダー情報を返すことができます。

  1. Access-Control-Allow-Headers ヘッダー情報の設定

クロスドメイン要求には、Authorization ヘッダーなどの特定のヘッダー情報が含まれる場合があります。デフォルトでは、ブラウザはこれらのヘッダーを含むクロスオリジンリクエストをブロックします。クロスドメイン要求でこれらのヘッダー情報を送信できるようにするには、サーバー側で Access-Control-Allow-Headers ヘッダー情報を設定する必要があります。サンプル コードは次のとおりです。

header("Access-Control-Allow-Headers: Authorization");
ログイン後にコピー

このようにして、クロスドメイン リクエストで Authorization ヘッダー情報を送信できるようになります。

3. 概要

PHP 開発では、クロスドメイン リソース共有 (CORS) の問題への対処は、考慮する必要がある重要な問題です。 CORS メカニズムを理解し、header() 関数を使用して応答ヘッダー情報を設定することで、この問題を簡単に解決できます。 Access-Control-Allow-Origin、Access-Control-Allow-Methods、Access-Control-Allow-Headers などのヘッダー情報を設定することで、クロスドメイン リソースへのアクセスを制御し、セキュリティとプライバシーを向上させることができます。 Webサイト。したがって、PHP 開発では、CORS の問題を適切に処理することが重要です。

以上がPHP 開発における Cross-Origin Resource Sharing (CORS) の問題にどう対処するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

See all articles