728x90
이번 시간에는 서버를 구축할때 신경써야할 CORS 정책을 FastAPI 서버에서 적용해보겠습니다.
1. CORS 정책이란?
CORS는 Cross-Origin Resource Sharing의 약자로, 웹 페이지에서 다른 도메인의 리소스에 접근할 때 발생하는 보안 정책입니다.
웹 브라우저는 기본적으로 동일 출처 정책(Same-Origin Policy)을 따르는데, 이는 웹 페이지가 동일한 출처에서만 리소스를 요청할 수 있다는 원칙입니다. 출처는 프로토콜, 호스트, 포트가 동일한 경우에 해당합니다.
CORS를 적용하지 않고 다른 도메인의 리소스를 요청할 경우 아래와 같은 에러가 발생합니다.
이를 해결하기 위해서는 서버에 접근하는 도메인을 허용하도록 만들어야 합니다.
FastAPI 서버에서 진행해보겠습니다.
2. 코드
FastAPI에서 제공하는 CORS 미들웨어 라이브러리를 사용하여 해결할 수 있습니다.
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware # CORS 미들웨어 라이브러리 불러오기
app = FastAPI()
# 도메인 명시
origins = [
# "*"
# "http://xxx.xxx.xxx.xxx"
"http://{접근 허용하고자 하는 도메인}",
]
# CORS 미들웨어 추가
app.add_middleware(
CORSMiddleware,
allow_origins=origins, # 접근 허용할 도메인 지정
allow_credentials=True, # 인증 정보(쿠키 등)를 허용할지 여부를 설정
allow_methods=["*"], # 허용할 HTTP 메서드를 지정, 여기서는 모든 메서드 허용
allow_headers=["*"], # 허용할 HTTP 헤더를 지정, 여기서는 모든 헤더 허용
)
@app.get("/test")
async def test():
return {"test": "Success"}
'Python' 카테고리의 다른 글
[Python]파이썬의 가변 인자: *args와 **kwargs 이해하기 (0) | 2024.03.02 |
---|---|
[Python] 수집한 데이터 시각화하기 (0) | 2024.02.23 |
[Python] 죽지않는 웹소켓 만들기 (0) | 2024.02.14 |
[Python] Selenium으로 웹페이지 전체 캡처하기 (0) | 2024.02.09 |
[Python] 실시간 비트코인 거래 데이터를 MariaDB에 저장하기 (0) | 2024.02.05 |