Перейти к содержанию

CSRFConfig

CSRF означает Cross-Site Request Forgery (межсайтовая подделка запроса) и является одним из встроенных middleware в Esmerald. Когда объект CSRFConfig передается экземпляру приложения, автоматически запускается CSRFMiddleware.

Tip

Больше информации о CSRF тут.

CSRFConfig и приложение

Для использования CSRFConfig в экземпляре приложения.

from esmerald import CSRFConfig, Esmerald, settings

csrf_config = CSRFConfig(
    secret=settings.secret_key,
    cookie_name="csrftoken",
)

app = Esmerald(csrf_config=csrf_config)

Еще пример

from esmerald import CSRFConfig, Esmerald, settings

csrf_config = CSRFConfig(
    secret_key=settings.secret_key, session_cookie="csrftoken", header_name="x-csrftoken"
)

app = Esmerald(csrf_config=csrf_config)

Параметры

Все параметры и значения по умолчанию доступны в справочнике CSRFConfig.

CSRFConfig и настройки приложения

CSRFConfig можно задать напрямую при создании приложения, а также через настройки.

from esmerald import CSRFConfig, EsmeraldAPISettings, ImproperlyConfigured


class CustomSettings(EsmeraldAPISettings):
    @property
    def csrf_config(self) -> CSRFConfig:
        """
        Initial Default configuration for the CSRF.
        This can be overwritten in another setting or simply override `secret`
        or then override the `def csrf_config()` property to change the behavior
        of the whole csrf_config.
        """
        if not self.secret_key:
            raise ImproperlyConfigured("`secret` setting not configured.")
        return CSRFConfig(secret=self.secret_key)

Это поможет вам поддерживать настройки в чистоте, без перегруженного экземпляра Esmerald.