CORS 테스터

CORS(Cross-Origin Resource Sharing) 정책을 테스트하고 API 요청을 확인합니다

요청 설정
테스트할 API 요청을 설정하세요
예제 요청
미리 정의된 API 요청을 사용해보세요
CORS 정보
CORS에 대한 기본 정보

CORS란? CORS(Cross-Origin Resource Sharing)는 웹 브라우저에서 실행되는 스크립트가 다른 출처(도메인, 프로토콜, 포트)의 리소스에 접근할 수 있도록 허용하는 메커니즘입니다.

주요 CORS 헤더

  • Access-Control-Allow-Origin: 어떤 출처에서 리소스에 접근할 수 있는지 지정
  • Access-Control-Allow-Methods: 허용되는 HTTP 메서드 지정
  • Access-Control-Allow-Headers: 허용되는 HTTP 헤더 지정
  • Access-Control-Allow-Credentials: 인증 정보(쿠키, HTTP 인증)를 포함할 수 있는지 지정

💡 CORS 문제 해결 방법

서버 측 해결책

1. Express.js (Node.js):

const cors = require('cors');
          app.use(cors({
            origin: 'https://example.com',
            methods: ['GET', 'POST'],
            credentials: true
          }));

2. Spring Boot (Java):

@CrossOrigin(origins = "https://example.com")
          @RestController
          public class ApiController { ... }

클라이언트 측 해결책

1. 프록시 서버 사용:

// package.json (React)
          "proxy": "http://localhost:3001"

2. JSONP 사용 (GET만 가능):

// 제한적이지만 간단한 해결책
          fetch('api?callback=handleResponse')

🔧 개발 환경별 CORS 설정

Next.js

// next.config.js
          module.exports = {
            async headers() {
              return [
                {
                  source: '/api/:path*',
                  headers: [
                    {
                      key: 'Access-Control-Allow-Origin',
                      value: '*'
                    }
                  ]
                }
              ]
            }
          }

Nginx

location /api {
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Methods 
              "GET, POST, OPTIONS";
            add_header Access-Control-Allow-Headers 
              "Content-Type, Authorization";
          }

Apache

# .htaccess
          Header always set Access-Control-Allow-Origin "*"
          Header always set Access-Control-Allow-Methods 
            "GET, POST, OPTIONS"
          Header always set Access-Control-Allow-Headers 
            "Content-Type, Authorization"

개발 환경별 CORS 설정

테스트 시나리오

  • Simple Request: GET 요청으로 기본 CORS 동작 확인
  • Preflight Request: PUT/DELETE 요청으로 사전 요청 확인
  • Custom Headers: Authorization 헤더 포함 요청 테스트
  • Credentials: 쿠키 포함 요청 테스트
  • Error Handling: 실패 시나리오 테스트

보안 고려사항

  • • 와일드카드(*) 사용 시 보안 위험 고려
  • • 최소 권한 원칙: 필요한 출처와 메서드만 허용
  • • 자격 증명 제한: 인증 정보 포함 시 특정 출처만 허용
  • • 정기적 검토: CORS 정책을 주기적으로 검토 및 업데이트

CORS 디버깅 팁

브라우저 개발자 도구

  • • Network 탭에서 OPTIONS 요청 확인
  • • Console에서 CORS 오류 메시지 확인
  • • Response Headers에서 CORS 헤더 확인

유용한 도구

  • • CORS Tester (현재 도구)
  • • Postman (API 테스트용)
  • • curl 명령어 (서버 직접 테스트용)