#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. Хорошая идея — вполне может быть причиной