Hub documentation

SpacesにおけるCookieの制限

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

SpacesにおけるCookieの制限

Hugging Face Spaces において、アプリケーションはクッキーの使用にいくつかの制限があります。これは主に、Spaces のページ(https://huggingface.co/spaces/<user>/<app>)が、親ページとは異なるドメイン(*.hf.space)でホストされているアプリケーションを iframe 内に含んでいるという構造によるものです。セキュリティ上の理由から、最新のブラウザでは、親ページとは異なるドメインでホストされている iframe ページからのクッキーの使用が制限されることがあります。

Docker SDKによるStreamlitアプリのホスティングへの影響

これらのクッキー制限が問題となるケースの一つは、Docker SDKを使用してStreamlitアプリケーションをホスティングする場合です。デフォルトで、StreamlitはクッキーベースのXSRF保護を有効にしています。その結果、st.file_uploader()のようにサーバーにデータを送信する特定のコンポーネントは、クッキーの使用が制限されているHF Spacesでは正しく動作しません。

この問題を回避するには、Streamlitのserver.enableXsrfProtectionオプションをfalseに設定する必要があります。これには2つの方法があります。

  1. コマンドライン引数: Streamlitアプリケーションを実行する際、このオプションをコマンドライン引数として指定できます。以下にコマンドの例を示します。

    streamlit run app.py --server.enableXsrfProtection false
  2. 設定ファイル: 代わりに、Streamlitの設定ファイル.streamlit/config.tomlでオプションを指定することもできます。このように記述します:

    [server]
    enableXsrfProtection = false

Streamlit SDKを使用している場合、SDKが自動で処理してくれるため、この点について心配する必要はありません。

Update on GitHub