INTEGRITY Документация

Проблемы с динамическим контентом и входом в систему

Такие динамические страницы, как формы входа, процессы оформления заказа и защищённые авторизацией маршруты приложения, могут работать некорректно при слишком агрессивном кешировании.

Распространённые симптомы:

Закешированная страница входа удаляет сессионные cookie

Одной из распространённых причин является Cache Rule или устаревшее правило Page Rule, настроенное для кеширования динамического HTML.

Обычно это происходит при одновременном выполнении следующих условий:

При такой настройке Cloudflare может кешировать ответ и удалить Set-Cookie заголовок до того, как ответ будет сохранён на периферийном сервере. В результате браузер получает страницу входа, но так и не получает сессионный cookie-файл, необходимый для следующего запроса.

Как подтвердить

Проверьте ответ для страницы входа или другого динамического маршрута.

Если вы видите оба следующих признака, страница, вероятно, кешируется, хотя не должна:

После отправки формы также могут возникать сбои, специфичные для конкретного фреймворка, например:

Эта проблема часто встречается во фреймворках, которые полагаются на сессионный или CSRF cookie при первой загрузке страницы, включая JavaServer Faces, ASP.NET, обработчики сессий PHP, Django, Rails и Laravel.

Решение

Не кешируйте страницы входа и другой HTML, требующий аутентификации.

Вместо этого:

  1. Ограничьте Подлежит кешированию или Cache Everything только к статичным путям.
  2. Добавьте более точное правило Cache Rule, которое обходит или отключает кеширование для таких маршрутов, как /login, /account, /cart, /checkout, и пути API приложения.
  3. Если источник должен управлять кешированием, удалите переопределение Edge TTL, которое принудительно кеширует страницу.
  4. Убедитесь, что исправленный ответ теперь возвращает CF-Cache-Status: DYNAMIC, MISS, или BYPASS, и сохраняет Set-Cookie.

Дополнительные сведения о поведении cookie см. в разделе Взаимодействие заголовка ответа Set-Cookie с кешем.

Циклы проверок при входе в систему или отправке форм

Проверки безопасности также могут прерывать динамические сценарии.

Два распространенных варианта:

Как подтвердить

Проверьте, есть ли Пользовательское правило WAF, управляемое правило, или правило ограничения частоты запросов применяется к пути входа.

Если проблема затрагивает только такие маршруты, как /login, /signin, /checkout, или /api/auth/*, и приложение работает при отключённой проверке для этих путей, вероятно, именно проверка нарушает работу процесса.

Решение

Используйте один из следующих подходов:

  1. Исключите путь входа в систему или отправки формы из challenge rule.
  2. Сузьте выражение правила так, чтобы оно применялось только к подозрительному трафику.
  3. Если маршрут необходимо защитить, используйте менее навязчивую проверку при загрузке страницы, а более строгие меры применяйте в других точках сценария.

При отладке также проверьте, что правила не совпадают с путями, сгенерированными Cloudflare, например с /cdn-cgi/*.

Дополнительные сведения о поведении, связанном с проверками, см. в разделе Устранение неполадок с правилами и Устранение неполадок Cloudflare WAF.