К содержимому
DDoS·Protect
Возможности

Кэширование: часть атаки и обычной нагрузки обслуживает фильтр, а не ваш сервер

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

Что кэшируется

  • Статика — картинки, шрифты, стили, скрипты. Кэшируется по умолчанию с учётом заголовков вашего сервера.
  • Страницы для неавторизованных посетителей — главная, каталог, статьи. Включается правилом для выбранных путей.
  • Ответы API с явным разрешением на кэш в заголовке Cache-Control.

Что никогда не кэшируется

Страницы с персональными данными: корзина, личный кабинет, оформление заказа, любые ответы на запросы с авторизационной cookie. Правила по умолчанию не кэшируют ответы, которые устанавливают cookie или помечены как private.

Если сервер упал

Режим «отдавать устаревшую копию» позволяет показывать посетителям последнюю сохранённую версию страниц, пока сервер недоступен. Для контентных сайтов и каталогов это превращает аварию в незаметную для большинства посетителей паузу в обновлении.

Сброс кэша

Кэш сбрасывается из личного кабинета целиком, по префиксу пути или по отдельному адресу, а также через API — например, автоматически после публикации нового материала.

Кэш и атаки

Атакующие знают, что кэш защищает сервер, и пытаются его обойти: добавляют к адресу случайные параметры, чтобы каждый запрос считался новым. Против этого правила кэша учитывают только значимые параметры, а остальные — метки рекламы, случайные строки — отбрасывают при построении ключа. Запросы с аномальным числом уникальных параметров получают проверку браузера. Подробнее — на странице об атаках на обход кэша.

Как сервер управляет кэшем

Фильтр уважает заголовки, которые отдаёт ваш сервер: Cache-Control с max-age и s-maxage, private и no-store, а также Vary. Поэтому самый надёжный способ настроить кэш — правильно выставить заголовки в приложении, а правила в личном кабинете использовать для исключений и страниц, где заголовки поменять сложно.

# Публичная страница: кэш на фильтре 5 минут, в браузере — 1 минута
Cache-Control: public, max-age=60, s-maxage=300

# Личный кабинет: не кэшировать нигде
Cache-Control: private, no-store
Пример заголовков ответа

Вопросы и ответы

Не увидит ли один клиент данные другого из кэша?

Нет: ответы на запросы с авторизационной cookie и ответы, помеченные private, не кэшируются. Правила для страниц включаются явно и проверяются на этот случай.

Можно ли не использовать кэш вообще?

Да. Кэширование настраивается по путям и может быть выключено полностью.

Ранний доступ

Подключим ваш сайт одним из первых

Сервис готовится к запуску. Оставьте заявку: проверим, от чего нужно защищать ваш проект, и подключим его в числе первых на условиях раннего доступа.