Spaces에서의 쿠키 제한
Spaces에서의 쿠키 제한 (Cookie limitations in Spaces)
Hugging Face Spaces에서 애플리케이션은 쿠키 사용에 특정한 제한이 있어요. 주된 이유는 Spaces 페이지(https://huggingface.co/spaces/<user>/<app>)의 구조 때문인데, 이 페이지는 iframe 안에서 다른 도메인(*.hf.space)에 호스팅된 애플리케이션을 포함하기 때문이에요. 보안상의 이유로 현대 브라우저는 부모 페이지와 다른 도메인에서 호스팅된 iframe 페이지의 쿠키 사용을 제한하곤 해요.
출처: 문서
본문
Docker SDK로 Streamlit 앱을 호스팅할 때의 영향
쿠키 제한이 문제가 될 수 있는 한 예는 Docker SDK로 Streamlit 애플리케이션을 호스팅할 때예요. 기본적으로 Streamlit은 쿠키 기반 XSRF 보호를 활성화해요. 그 결과 st.file_uploader()처럼 서버에 데이터를 제출하는 일부 컴포넌트는 쿠키 사용이 제한된 HF Spaces에서는 제대로 동작하지 않게 돼요.
이 문제를 해결하려면 Streamlit의 server.enableXsrfProtection 옵션을 false로 설정해야 해요. 두 가지 방법이 있습니다:
-
커맨드 라인 인자: Streamlit 애플리케이션을 실행할 때 커맨드 라인 인자로 옵션을 지정할 수 있어요. 예제 명령은 다음과 같아요:
streamlit run app.py --server.enableXsrfProtection false -
설정 파일: Streamlit 설정 파일
.streamlit/config.toml에 옵션을 지정할 수도 있어요. 다음과 같이 작성하면 됩니다:[server] enableXsrfProtection = false
[!TIP] Streamlit SDK를 사용할 때는 SDK가 알아서 처리하므로 이 문제를 신경 쓸 필요가 없어요.
더 알아보기 (Learn more)
- HF Docker Spaces 문서에서 Docker 기반 Spaces를 만드는 법을 배울 수 있어요.
- Streamlit 공식 문서에서 XSRF 보호 설정에 대해 더 알아볼 수 있어요.