CORS 테스터 및 정책 분석기
브라우저에서 CORS를 테스트하거나 원하는 출처로 사전 요청을 시뮬레이션
요청
서버 요청으로 시뮬레이션하며 실제 결과는 브라우저가 적용합니다. CodingTool 서버는 쿠키, 헤더 값, 본문 없이 사전 요청(해당 메서드면 GET 또는 HEAD 포함)을 보내고 응답 헤더만 돌려줍니다. 아무것도 저장하지 않습니다.
Origin 헤더로 전송됩니다. 샌드박스 페이지나 로컬 파일을 테스트하려면 null을 사용하세요.
한 줄에 하나씩 입력하세요. 서버에는 헤더 이름만 전달되고 값은 브라우저에 남습니다.
단순 요청: 브라우저가 사전 요청 없이 보냅니다.
쿠키나 HTTP 인증이 있는 요청의 규칙을 확인합니다. 실제로는 아무것도 보내지 않습니다.
관련 없는 출처 https://cors-probe.example로 사전 요청을 한 번 더 보냅니다.
결과
응답 헤더
테스트 후 여기에 응답 헤더가 표시됩니다.
CORS 테스터는 무엇을 확인하나요?
한 출처의 웹 페이지가 다른 출처의 응답을 읽도록 브라우저가 허용하는지와 그 이유를 보여 줍니다. 정책 시뮬레이션은 Access-Control-Allow-Origin, -Credentials, -Methods, -Headers, -Expose-Headers, -Max-Age와 Vary: Origin을 평가하고, 각 검사를 근거가 된 헤더 값과 함께 통과, 경고, 실패, 정보로 표시합니다.
브라우저 테스트와 정책 시뮬레이션의 차이
브라우저 테스트는 사용 중인 브라우저에서 실제 fetch를 보내므로 결과가 실제 브라우저의 적용 결과입니다. 다만 출처는 항상 CodingTool.dev이고, 차단된 요청은 일반적인 오류만 알려 줍니다. 정책 시뮬레이션은 선택한 출처로 사전 요청을 보내도록 CodingTool 서버에 요청하고 응답 헤더를 분석합니다. 시뮬레이션이므로 최종 결과는 브라우저가 적용합니다.
브라우저는 언제 사전 요청을 보내나요?
GET, HEAD, POST 이외의 메서드, CORS 안전 목록에 없는 헤더, 또는 text/plain, multipart/form-data, application/x-www-form-urlencoded 이외의 Content-Type을 쓰는 요청은 먼저 OPTIONS로 사전 요청됩니다. 사전 요청은 2xx 상태로 응답해야 하며 리디렉션하면 안 됩니다.
자격 증명과 와일드카드
자격 증명이 있으면 Access-Control-Allow-Origin은 정확한 출처를 지정하고 Access-Control-Allow-Credentials는 true여야 합니다. Allow-Origin, Allow-Methods, Allow-Headers, Expose-Headers의 *는 자격 증명 요청에서 글자 그대로 처리되며, Allow-Headers: *는 Authorization을 절대 포함하지 않습니다. 느슨한 헤더가 곧 취약점은 아니며, 이 도구는 브라우저가 받아들이는 내용을 보고합니다.
네트워크 사용과 개인정보
브라우저 테스트 트래픽은 브라우저에서 대상으로만 전달됩니다. 정책 시뮬레이션은 URL, 출처, 메서드, 헤더 이름을 CodingTool 서버로 보내며 헤더 값, 쿠키, 본문은 절대 보내지 않습니다. 서버는 사설, 로컬, 클라우드 메타데이터 주소를 차단하고, 연결할 때마다 주소를 다시 확인하며, 리디렉션을 따르지 않고, 8초 후 중단하고, 요청 수를 제한하며, 아무것도 저장하지 않습니다.
