Meme's IT

[Django] CORS Policy 본문

BackEnd/Django

[Django] CORS Policy

Memez 2023. 11. 14. 11:49

우선

# SOP(=Same-origin Policy)

 = 동일 출처 정책

어떤 출처(origin)에서 불러온 문서나 스크립트가 

다른 출처에서 가져온 리소스와 상호작용하는 것을 제한하는 보안 방식

 

같은 출처인 걸 어떻게 구분하는데?

→ Protocol, Host, Port가 같아야 같은 출처로 인정해줌


 

근데.. 어떻게 다 같은 출처야..

요즘 다 밖에서 API 따서오고 다른 출처로부터 리소스 요청이 엄청 많은데?

그래서 CORS라는 정책이 생겼다

 

# CORS(= Cross-Origin Resource Sharing)

= 교차 출처 리소스 공유

다른 출처의 자원에 접근할 수 있는 권한을 부여하도록 브라우저에게 알려주는 체제

서버측에 다른 출처지만 접근해도 됩니다~ 라는 걸 알려줘야한다

 

CORS는 백엔드 서버에서 설정되며, 올바른 CORS header를 포함한 응답을 반환해줘야 함

여기서 우리의 백엔드 서버는 장고이므로 장고에서 하는 방법을 한번 보자

 

우선 CORS를 쓰기 위해 install을 진행해주자

pip install django-cors-headers

 

 

그다음에 settings.py에 세가지를 추가해준다

# settings.py
INSTALLED_APPS = [
    ...
    
    'corsheaders',  # 추가
]

MIDDLEWARE = [
	...
    'corsheaders.middleware.CorsMiddleware',    # 추가
]


# 전체 추가, 어느 주소를 허용할건지를 쓰는 곳
CORS_ALLOWED_ORIGINS = [
	# 여기는 우리가 쓰는 프론트엔드(vue) 서버의 주소를 적어준다
    'http://localhost:',
]

네트워크 창에 Control Allow 된 것을 확인 가능

'BackEnd > Django' 카테고리의 다른 글

[Django] API KEY 숨기는 방법  (0) 2023.10.27
[Django] API 문서화  (0) 2023.10.19
[Django] DRF(2) N:1 Relation  (0) 2023.10.19
[Django] DRF(1) single model  (0) 2023.10.18
[Django] DRF란?  (0) 2023.10.18