Кеширование / Проблема безопасности - PullRequest
1 голос
/ 07 октября 2011

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

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

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

Какими другими возможными способами может случиться описанная ситуация?Почему это возможно?Не о чем ли беспокоиться?

1 Ответ

0 голосов
/ 07 октября 2011

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

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

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

Ссылки MSDN

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...