단순 요청인 Simple Request와 프리플라이트 요청이라 불리는 Preflighted Request는 무슨 차이가 있을까? Pre- 접두사가 붙은 것을 보아 미리 뭔가를 더 하겠다는 느낌을 받는다. 단순 요청과 프리플라이트 요청에 차이를 둔 이유와 보안적으로는 어떤 부분이 다른지의 관점 위주로, 이번에는 간단하게 비교해서 정리한다. 가정 http://www.example.com에서 http://api.example.com으로 Ajax GET 요청을 통해 데이터를 받아온다. 🔊 Simple Request Request Response GET /data HTTP/1.1 Host: api.example.com Origin: http://www.example.com HTTP/1.1 200 OK Access..
동작 원리 - 응답 헤더 설정 상세 Cross-site Origin 요청에서는 헤더에 'Origin: protocol://domain:port'이 서버로 전송된다. Same Origin이라도 GET, HEAD 요청을 제외한 메서드는 Origin 헤더가 추가되며, mode 설정에 따라 요청에 사용 가능한 헤더가 제한될 수 있다. 즉 Same Origin이어도 CORS 요청으로 취급될 수 있어 유의해야 한다. So, what the spec means there is: The Origin header is sent in all cross-origin requests, but it’s also always sent for all POST, PUT, PATCH, and DELETE requests — even ..
동작 원리 (1) - 기본 동작하게 만드는 것은 간단히 다음과 같이 헤더를 추가하는 방식으로 하는데, 요청 헤더를 통해 Origin에 대한 정보를 데이터를 받을 서버로 보내면, 데이터를 줄 서버에서 Origin을 검증하여 브라우저가 권한을 확인하게 한다. 동작 원리 (2)에 조금 더 자세한 내용이 있다. 단, MDN에 의하면 요청 헤더인 Origin은 프로그래밍 방식으로 변경할 수 없다. (즉 소스코드에 의해 Origin 요청 헤더를 추가하거나 제외할 수 없다.) A forbidden header name is the name of any HTTP header that cannot be modified programmatically; 그러므로 아래에 나올 코드(요청 단)가 아닌 서버에서 CORS를 활성화..
작성배경 CORS는 그냥 다른 사이트에서 접근하는 것을 막아주는 거라고 했다..! 정도의 지식을 갖고 있어 스스로 부끄러움이 느껴져 해당 글을 작성하면서 공부해본다. 예전에 신입 면접보려고... 접근 허용된 url~? 오브CORS~ 하고 외우기만 했던 기억이..ㅎ 오늘 Request 헤더에 Origin이 있고 CORS 관련 응답 헤더가 있는 패킷을 본 적이 있어서, 잘만 하면 뭔가뭔가의 취약점이 있을 것 같은데 잘 되지 않기도 했다. 이번에는 bugbounty club이라는 곳을 통해서 CORS 개념, 동작원리, 취약한 환경에서 실습도 하며 공부해보려고 한다. 아래 그림을 보면 모니터 속의 외부 공격자는 CONFIDENTIAL이라고 적힌 기밀 문서를 읽는 그림인데 인상 깊다. CORS? CORS는 Cro..
보호되어 있는 글입니다.
- Thanks for comming.
- 오늘은
- 명이 방문했어요
- 어제는
- 명이 방문했어요