Ресурсы · 63
HTTP-кэширование: защита персонализированных ответов
Разделите общий, частный и прикладной кэш, проверьте ключи, повторную проверку и аннулирование после изменения прав доступа.
Обновлено · 3 min
Чего помогает достичь это руководство
- Слои инвентаризации
- Выбор срока хранения
- Проверка ключей
- Повторная проверка и изменение
Быстрая проверка
- Означает ли отсутствие кэша, что ничего не сохраняется?
- Защищает ли Vary права доступа?
- Следует ли кэшировать каждый API?
Пошаговый метод
- 1
Слои инвентаризации
Перечислите кэши браузера, CDN, прокси, сервис-воркера и приложения. Классифицируйте публичные и персонализированные ответы. Политика HTTP не описывает автоматически кэширование, реализованное в коде.
Результат: диаграмма слоев и владельцев.
- 2
Выбор срока хранения
RFC 9111 различает директивы: no-cache требует проверки перед повторным использованием, no-store запрещает соответствующее хранилище HTTP, а unqualified private исключает общее хранилище. Ни одна из них сама по себе не гарантирует конфиденциальность системы.
Результат: политика хранения для каждого ответа.
- 3
Проверка ключей
Проверка метода, URI и измерений, изменяющих представление. Vary касается полей запроса; Это не авторизация. Необходимо проверить пропущенные языковые параметры, согласование формата и контекст учетной записи на уровне приложения.
Результат: ключи и тесты разделения.
- 4
Повторная проверка и изменение
Тестирование новых и устаревших ответов, обновлений данных и отозванных прав. Проверка ETag, условной проверки и поведения при недоступности источника. Ранее правильный ответ может стать конфиденциальным после отзыва.
Результат: трассировка до и после.
- 5
Воспроизведение с двумя учетными записями.
Использование вымышленных идентификаторов и маркеров. Чередование запросов к одному и тому же URI с использованием теплого и холодного кэша. Проверка выхода из системы, прямых ссылок и логирования без записи реальных токенов.
Результат: негативные тесты и стратегия аннулирования.
Многоразовый рабочий лист
Заполните ваши авторизованные наблюдения. Эти поля являются рабочим шаблоном, а не наблюдаемыми результатами.
| Поле | Информация для записи |
|---|---|
| Реагирование | Общедоступный или персонализированный; Размеры |
| Слой | Кэш, владелец и ключ |
| Политика | Сохранение, актуальность и проверка |
| Пробный запуск | Вымышленный отчет, изменение и наблюдение |
Вымышленный пример
Иллюстративная ситуация
Вымышленный пример: CDN повторно использует ответ профиля по одному и тому же URI для двух тестовых учетных записей.
Решение и ожидаемые доказательства
В сценарии обнаруживается утечка, проверяется политика и ключи, затем воспроизведение происходит после исправления и отзыва доступа.
Различение механизмов
| Механизм | Назначение | Проверка или ограничение |
|---|---|---|
| no-cache | Разрешить хранение с обязательной проверкой | Не следует воспринимать это как отсутствие хранения |
| Неквалифицированное частное хранилище | Исключить общее кэширование | Не следует воспринимать это как гарантию конфиденциальности |
| no-store | Предотвратить соответствующее HTTP-хранилище | Проверять кэш и историю приложений отдельно |
Показатели управления
| Показатель | Что он измеряет | Первое действие |
|---|---|---|
| Разделение учетных записей | Нет метки от другой учетной записи | Проверить тело, ссылки и метаданные |
| Возраст и проверка | Повторное использование в соответствии с политикой | Проверить срок действия и недоступный источник |
| Задержка аннулирования | Время до исправления представления | Назвать каждый слой устаревшим |
Распространенные ошибки
- Не следует воспринимать это как отсутствие хранения
- Не следует воспринимать это как гарантию конфиденциальности
- Проверять кэш и историю приложений отдельно
Часто задаваемые вопросы
Означает ли отсутствие кэша, что ничего не сохраняется?
Нет. Требуется проверка перед повторным использованием; это не запрещает хранение, как это делает no-store.
Защищает ли Vary права доступа?
Нет. Он участвует в выборе представления; авторизация остается отдельной.
Следует ли кэшировать каждый API?
Нет. Преимущества зависят от стоимости, актуальности и риска. Конфиденциальные ответы могут оправдывать отказ от использования общих кэшей.
Официальные ссылки
Ссылки подтверждают метод. Адаптируйте проверки к вашему контексту; они не являются сертификацией. Оригинальные названия ссылок и исходные документы могут быть на другом языке.
Источники проверены .






