CORS 설정 점검
URL의 CORS(Access-Control-Allow-*) 헤더를 preflight로 점검합니다.
CORS 설정 점검 도구는 특정 URL이 다른 출처(origin)에서 오는 브라우저 요청을 허용하는지 실제 요청을 보내 확인합니다. 서버가 응답에 붙이는 Access-Control-Allow-Origin·-Methods·-Headers·-Credentials 헤더를 그대로 보여주고, 그 의미를 정상/주의/위험으로 평가합니다. 자바스크립트에서 API를 호출할 때 나는 “has been blocked by CORS policy” 오류의 원인을 빠르게 좁힐 수 있습니다.
점검할 API URL과 요청을 보낼 출처(origin)를 입력하면, 서버가 단순 GET 요청과 OPTIONS preflight 요청을 함께 보내 응답 헤더를 수집합니다. 출처를 비워 두면 기본값 https://example.com으로 점검합니다. 브라우저가 아닌 서버에서 헤더만 읽으므로 실제 데이터는 가져오지 않으며, 결과는 잠시 캐싱되어 빠르게 응답합니다.
CORS가 동작하는 방식
브라우저는 자바스크립트가 자기 출처와 다른 출처로 요청을 보낼 때, 응답에 적절한 Access-Control 헤더가 있어야만 결과를 자바스크립트에 넘겨줍니다. 헤더가 없거나 출처가 맞지 않으면 네트워크 응답 자체는 도착해도 브라우저가 차단합니다.
- Access-Control-Allow-Origin: 허용할 출처. 특정 URL, 와일드카드(*), 또는 요청 출처를 그대로 반사한 값.
- Access-Control-Allow-Methods: preflight에서 허용되는 HTTP 메서드 목록.
- Access-Control-Allow-Headers: 요청에 허용되는 커스텀 헤더 목록.
- Access-Control-Allow-Credentials: 쿠키·인증 정보를 함께 보낼 수 있는지 여부.
preflight와 단순 요청
GET 같은 단순 요청은 곧바로 전송되지만, 커스텀 헤더가 있거나 PUT·DELETE 등은 브라우저가 먼저 OPTIONS preflight 요청으로 허용 여부를 묻습니다. 이 도구는 두 요청을 모두 보내, preflight 응답의 헤더를 우선 평가하고 없으면 단순 요청 응답으로 보완합니다.
* 와 credentials 동시 허용의 위험
Access-Control-Allow-Origin이 *(와일드카드)이면서 동시에 자격증명을 허용하는 설정은 위험합니다. 사양상 브라우저는 와일드카드와 credentials를 함께 허용하지 않지만, 서버가 요청 출처를 무조건 반사하면서 credentials까지 허용하면 사실상 모든 사이트가 사용자의 쿠키로 API를 호출할 수 있게 됩니다. 신뢰하는 출처만 명시적으로 허용하세요. CORS 외에 응답의 다른 헤더까지 확인하려면 HTTP 헤더 확인으로 전체 응답 헤더를 살펴보세요.