HTTP OPTIONS 메소드를 쓰는 이유를 알기 위해서는 CORS란 개념을 우선 숙지해야한다.
CORS란
웹 브라우저가 외부 도메인의 서버와 통신하기 위해 HTTP 헤더 기반 메커니즘을 사용한 것을 CORS라 한다.
그렇다면 왜 안전하게 1개의 도메인이 아닌 다른 도메인에서 데이터를 가져오는 것일까? 그것은 웹 기술의 발전에 따라 다른 서버로 요청을 보내거나 페이지내 자원을 분리해야할 필요성이 생겨나서 이를 다른 도메인에서 가져와 쓰는 것이다.
그렇기 때문에 어떠한 요청을 할것인지 미리 보내 승인을 받으면 데이터를 가져오는 것이다.
데이터를 가져오기 위해서 Access-Control-Allow-Origin 헤더 속성을 이용하여 접속 가능 여부를 확인한다.
이때 사용되는 요청이 Preflight Request이다.
Preflight Request
권한 및 해당 도메인에 대한 안전을 확인하기 위한 사전요청이라 보면 편할 것이다. 클라이언트가 요청하는 URL이 외부 도메인일 경우 웹브라우저 자체적으로 실행되는데 OPTIONS 메서드로 사전 요청을 보내고 무슨 요청을 사용할 수 있는지 권한이 출력된다. 아래 사진은 요청에 대한 어떤 권한을 줄 수 있는지 나오게 된다. 보게 되면 GET, POST, PUT ,PATCH, DELETE, OPTIONS 가 가능하다는 것을 볼 수 있다.

아래는 위 요청을 통해 GET을 해당 도메인에 요청을 보낸 것이다.

간략하게 적었지만 결국 해당 도메인에서 다른 도메인의 데이터를 가져와 사용한다는 것이 주 핵심이고 Access-Control-Allow-Origin를 통해 데이터 송신을 한다는 것을 알면 된다.
| GET | URL에 데이터를 실어 다음 URL에 전달 |
| POST | 보이지않지만 URL 이동시 데이터를 가지고 보낸다 (안전) |
| PUT | 리소스의 모든 데이터를 업데이트한다. |
| PATCH | 리소의 일부 데이터를 업데이트한다. |
| DELETE | 데이터를 삭제 |
| OPTIONS |
다른 도메인에 어떠한 요청을 할 수 있는지 확인 하는 것 |
'Web > Web 보안' 카테고리의 다른 글
| [보안] 에러 페이지 내 서버 정보 노출 (0) | 2022.11.29 |
|---|---|
| CTF 문제 풀이 및 정리 Advanced SQLi (0) | 2022.06.21 |
| CTF 문제 풀이 및 정리 Basic blind (0) | 2022.06.20 |
| CTF 문제 풀이 및 정리 Basic ERROR (0) | 2022.06.17 |
| ctf 문제 풀이 및 정리 basic union (0) | 2022.06.16 |