현재 위치: > 최신 기사 목록> CORS (Cross-Domain Header) 응답 설정 : Access-Control-Ollow-Origin 사용

CORS (Cross-Domain Header) 응답 설정 : Access-Control-Ollow-Origin 사용

M66 2025-05-28

도메인 간 문제는 웹 개발에서 매우 일반적인 문제입니다. 특히 별도의 프론트 엔드 및 백엔드 응용 프로그램이있는 응용 프로그램에서 프론트 엔드는 다른 도메인 이름으로 리소스에 액세스해야 할 수 있으며 브라우저는 보안상의 이유로 기본적으로 크로스 도메인 요청을 차단합니다. 현재 서버는 크로스 도메인 요청을 허용하도록 HTTP 헤더를 설정해야합니다. PHP에서는 헤더 () 함수를 사용하여 크로스 도메인 관련 헤더 정보를 설정할 수 있습니다.

1. 도메인 교차 문제 및 솔루션

CORS (Cross-Domain Resource Sharing)는 브라우저가 다른 도메인에 대한 요청을 시작할 수 있도록함으로써 크로스 도메인 문제를 해결하는 메커니즘입니다. CORS는 주로 HTTP 헤더, 특히 액세스-제어 홀로-오리핀 에 의존합니다. 브라우저가 다른 도메인의 서버에 대한 요청을 시작하면 서버는 응답 헤더에 액세스-제어-홀로-오리핀을 포함하여 크로스 도메인 요청을 명시 적으로 허용해야합니다.

2. 액세스-제어-홀로-오리핀에 대한 자세한 설명

Access-Control-Ollow-Origin 은 CORS 표준의 핵심 헤더로서 리소스에 액세스 할 수있는 도메인 이름을 결정합니다. 그 값은 다음과 같은 경우에있을 수 있습니다.

  • * : 모든 도메인 이름은 리소스에 액세스 할 수 있음을 의미합니다.

  • http://m66.net :이 지정된 도메인 이름 만 리소스에 액세스 할 수 있습니다.

  • NULL : 크로스 도메인 요청은 허용되지 않음을 의미합니다.

예를 들어, 도메인 이름 http://m66.net이 크로스 도메인 요청을하도록 허용하려면 PHP 스크립트에서 해당 헤더를 설정해야합니다.

3. PHP를 사용하여 액세스-제어-홀로-오리진을 설정하십시오

PHP에서 HTTP 헤더 정보 설정은 Header () 함수를 통해 구현됩니다. 크로스 도메인 요청을 허용하기 위해 가장 기본적인 단계는 Header ()를 사용하여 액세스-통제권-오리핀을 설정하는 것입니다.

샘플 코드 :

 <?php
// 허용http://m66.net크로스 도메인 요청
header("Access-Control-Allow-Origin: http://m66.net");

// 다른 사람을 지원 해야하는 경우HTTP방법(좋다POST、PUT、DELETE기다리다),이것은 설정 될 수 있습니다:
header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE");

// 좋다果需要允许携带cookie,다음 헤더를 설정해야합니다
header("Access-Control-Allow-Credentials: true");

// 허용 요청 헤더를 설정하십시오
header("Access-Control-Allow-Headers: Content-Type, Authorization");

// 실제 적용에서,요청의 소스 도메인 이름을 결정할 수 있습니다.,크로스 도메인 헤더를 동적으로 설정합니다
$allowedOrigin = "http://m66.net";
if ($_SERVER['HTTP_ORIGIN'] === $allowedOrigin) {
    header("Access-Control-Allow-Origin: $allowedOrigin");
}
?>

설명하다:

  • Access-Control-Ollow-Origin : 지정된 도메인 이름이 크로스 도메인 요청을 할 수 있습니다. 여러 도메인 이름을 허용하려면 요청 소스를 동적으로 결정하고 다른 도메인 이름을 설정할 수 있습니다.

  • 액세스 제어 획기 방법 : 허용 HTTP 방법 (예 : Get, Post 등).

  • Access-Control-Hallow-Credentials : 쿠키를 보내야하는 경우 헤더를 True 로 설정해야합니다.

  • Access-Control-Hallow-Headers : 허용 사용자 정의 요청 헤더 (예 : 컨텐츠 유형 또는 권한 부여 ).

4. 비행 전 요청 (옵션)

브라우저에서 일부 복잡한 크로스 도메인 요청 (예 : 사용자 정의 헤더 또는 Put, Delete Methods 등)과 같은 복잡한 크로스 도메인 요청이 시작되면 브라우저는 먼저 프리 플라이트 요청이라는 옵션 요청을 보냅니다. 이 요청은 서버가 크로스 도메인 요청을 허용하는지 확인하는 것입니다. 프리 플라이트 요청에 대한 응답으로 서버는 해당 CORS 헤더를 반환해야합니다.

예를 들어:

 <?php
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    // 예비 비행 요청을 처리합니다
    header("Access-Control-Allow-Origin: http://m66.net");
    header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE");
    header("Access-Control-Allow-Headers: Content-Type, Authorization");
    header("Access-Control-Allow-Credentials: true");
    exit();
}
?>

설명하다:

  • 옵션 요청은 실제 데이터를 반환 할 필요가 없지만 브라우저 서버에 크로스 도메인 요청이 허용되는지 여부를 알리기 위해 CORS 헤더를 올바르게 설정해야합니다.

5. 요약

PHP의 Header () 함수를 사용하면 지정된 도메인 이름에 대한 크로스 도메인 요청을 허용하기 위해 크로스 도메인 관련 HTTP 헤더, 특히 액세스-제어-홀로-오리핀 을 쉽게 설정할 수 있습니다. 실제 요구에 따라 CORS 정책을 유연하게 구성하여 보안과 기능 간의 균형을 유지할 수 있습니다.

크로스 도메인 리소스 공유는 웹 응용 프로그램에서 무시할 수없는 문제입니다. PHP에서 CORS 헤더를 구성하는 방법을 마스터하면 크로스 도메인 문제를 해결하고 응용 프로그램의 접근성 및 확장 성을 향상시키는 데 도움이됩니다.