>백엔드 개발 >PHP 문제 >크로스 도메인 PHP 프로젝트를 설정하는 방법

크로스 도메인 PHP 프로젝트를 설정하는 방법

PHPz
PHPz원래의
2023-04-10 09:35:493969검색

CORS(Cross-Origin Resource Sharing)는 브라우저가 리소스를 요청할 때 AJAX 요청을 다른 도메인으로 보낼 수 있도록 하는 웹 기술입니다. 웹 서비스를 사용할 때 CORS를 사용하면 브라우저가 다른 도메인의 데이터를 요청할 수 있습니다. 이 문서에서는 PHP 프로젝트에서 도메인 간 액세스를 설정하는 방법을 소개합니다.

교차 도메인이란 무엇인가요?

교차 도메인은 웹 개발 시 브라우저에서 실행되는 스크립트가 페이지가 제공된 서버가 아닌 다른 출처에 액세스하려고 시도하는 것입니다. 예를 들어 www.example.com 웹 페이지에서 스크립트가 http://www.example.org 서버에 액세스하려고 시도하는 경우 이를 크로스 도메인 요청이라고 합니다.

교차 도메인을 설정해야 하는 이유는 무엇인가요?

웹 브라우저는 스크립트가 동일한 원본 사이트의 콘텐츠에만 액세스하도록 제한하는 기본 웹 보안 정책인 동일 원본 정책을 구현합니다. 상동 사이트란 동일한 프로토콜, 도메인 이름, 포트를 가진 사이트를 말합니다. 동일 출처 정책의 제한이 없으면 도메인 간 요청이 사용자 계정을 쉽게 공격할 수 있습니다. 예를 들어, 온라인으로 책을 구매하는 경우 악성 스크립트가 다른 도메인에서 귀하의 계정에 쉽게 액세스하여 귀하의 계정을 사용하여 결제할 수 있습니다.

교차 도메인을 설정하는 방법은 무엇입니까?

PHP 프로젝트에서는 응답 헤더를 설정하여 CORS(교차 원본 요청)를 작성할 수 있습니다.

    Access-Control-Allow-Origin
특정 도메인의 요청을 허용하는 "Access-Control-Allow-Origin" 응답 헤더를 설정합니다. 예를 들어, AJAX 요청이 "http://localhost:3000"에서 요청을 보내야 하는 경우 서버의 응답 헤더에 다음 줄을 추가할 수 있습니다.

header("Access-Control-Allow-Origin:http://localhost:3000");
    Access-Control-Allow-Headers
Allow-Origin을 설정하면 특정 도메인 이름에 대한 도메인 간 요청을 허용할 수 있으며 맞춤 요청 헤더를 허용하려면 Access-Control-Allow-Headers도 설정해야 합니다. 예를 들어 AJAX 요청이 사용자 지정 요청 헤더 "X-Custom-Header"를 보내려는 경우 응답 헤더에 다음 줄을 추가해야 합니다.

header("Access-Control-Allow-Headers: X-Custom-Header");
    Access-Control-Allow-Methods
Access-Control-Allow-Methods 응답 헤더에 다음 행을 추가하여 허용되는 요청 방법을 지정합니다. 예를 들어 이 예시 설정은 GET 및 POST 방법을 허용합니다.

header('Access-Control-Allow-Methods: GET, POST');
    Access-Control-Allow-Credentials
쿠키를 전송해야 하는 경우 Access-Control-Allow-Credentials를 "true"로 설정해야 합니다. 예를 들어, 브라우저에 쿠키를 요청하도록 요청하세요.

header('Access-Control-Allow-Credentials: true');
Summary

PHP 프로젝트에서 CORS(교차 도메인 요청)를 구현하려면 Access-Control-Allow-Origin, Access-Control-Allow-Headers, Access-Control-Allow-Methods 및 Access-Key를 설정하여 응답 헤더를 설정해야 합니다. Control-Allow-Credentials와 같은 응답 헤더를 사용하면 브라우저가 요청을 보낼 때 원본 간 요청을 허용할 수 있습니다.

위 내용은 크로스 도메인 PHP 프로젝트를 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.