CORS
- CORS란?
다른 사용자가 원래 사이트를 흉내 낼 수 없게 브라우저를 보호하기 위한 메커니즘이다.
브라우저는 보안적인 이유로 cross-origin HTTP 요청들을 제한한다. 그래서 cross-origin 요청을 하려면 서버의 동의가 필요합니다.
만약 서버가 동의한다면 브라우저에서는 요청을 허락하고, 동의하지 않는다면 브라우저에서 거절하는 즉, 브라우저에서 cross-origin 요청을 안전하게 할 수 있도록 하는 메커니즘을 CORS라고 한다.
- CORS 구현 방법
- 서버로 요청을 합니다.
- 서버의 응답이 왔을 때 브라우저가 요청한 Origin과 응답한 헤더 Access-Control-Request-Headers의 값을 비교하여 유효한 요청이라면 리소스를 응답합니다. 만약 유효하지 않은 요청이라면 브라우저에서 이를 막고 에러가 발생합니다.
- Django에서 CORS 구현
- django-cors-headers 패키지 설치: pip install django-cors-headers
- 프로젝트 설정에 추가
- 프로젝트의 settings.py 파일에 'corsheaders'를 추가하여 애플리케이션에서 사용 가능하도록 합니다.
- CORS_ORIGIN_WHITELIST 설정
- 허용되는 도메인을 설정 CORS_ORIGIN_WHITELIST = ['http://localhost:8000', 'http://127.0.0.1:8000', 'http://example.com']
- Middleware 설정
- 'corsheaders.middleware.CorsMiddleware'를 MIDDLEWARE 설정에 추가(최상단에 추가)
'woncoding > TIL' 카테고리의 다른 글
| TIL | 1.25.수 [CS 기초지식 | Stack / Queue / Array / Linked List] (0) | 2023.01.26 |
|---|---|
| TIL | 1.24.화 [CS 기초지식 | Semaphore / Mutex / Cookie] (0) | 2023.01.25 |
| TIL | 1.20.금 [CS 기초지식 | HTTP / HTTPS] (0) | 2023.01.25 |
| TIL | 1.19.목 [CS 기초지식 | 정규화] (0) | 2023.01.25 |
| TIL | 1.18.수 [CS 기초지식 | 트랜잭션] (0) | 2023.01.25 |