Кэширование / проблема безопасности

#security #http #caching #https

#Безопасность #http #кэширование #https

Вопрос:

Недавно, когда я вошел в систему, чтобы просмотреть свою учетную запись на сайте очень известных операторов мобильной связи, мне была представлена совершенно не связанная учетная запись. После того, как я обновил страницу, мне была показана правильная учетная запись.

Он не был кэширован из предыдущего сеанса, поскольку другие пользователи не используют этот компьютер.

Я понимаю, что точная причина, по которой это произошло, не может быть установлена, но скорее я спрашиваю о том, какими возможными способами может произойти эта ситуация. Я могу думать только о проблеме с кэшированием в сети, которая по ошибке передала мне страницу кого-то другого, кто недавно пользовался сайтом.

Какими еще возможными способами может произойти описанная ситуация? Почему это возможно? Разве это не то, о чем стоит беспокоиться?

Комментарии:

1. Plusnet — Может ли это быть проблемой интернет-провайдера? Если да, то как?

2. Вы могли бы рассмотреть возможность перекрестной публикации этого в security.stackexchange.com

Ответ №1:

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

Это мощный метод повышения масштабируемости сайта, но вы должны быть осторожны при его применении (и тестировании!), Иначе вы окажетесь в такой ситуации, когда люди начинают видеть детали учетных записей других людей — я слышал, что это происходит на банковских сайтах.

Как это исправить? В OutputCache директиве page существует ряд VaryBy... атрибутов, которые могут быть установлены для управления набором обстоятельств, при которых сервер генерирует новую версию страницы, а не обслуживает запрос из кэша, например, кэширование страницы для каждой уникальной строки запроса, кэширование страниц на основе кодировок содержимого. В ASP.NET WebForms, есть также малоизвестный элемент управления под названием Substitution , который позволяет динамически вставлять содержимое на страницу с кэшированием выходных данных.

Ссылки на MSDN

Комментарии:

1. Хорошая идея — вполне может быть причиной