установить значение сеанса при входе в систему, очистить его при выходе из системы и проверять его при каждом доступе к защищенной странице. Значение сеанса не отправляется клиенту, и поэтому клиент / злоумышленник не может манипулировать им.
прохождение без значения сеанса, очищенного при выходе:
пользователь заходит на страницу входа - генерирует viewstate
Злоумышленник собирает viewstate
пользователь отправляет форму входа в систему - генерирует файлы cookie авторизации
злоумышленник собирает файлы cookie
пользователь выходит из системы - сервер очищает куки пользователя
злоумышленник продолжает беспрепятственно использовать прежние учетные данные
игра окончена
Значение сеанса прохождения, очищенное при выходе:
пользователь заходит на страницу входа - генерирует viewstate
Злоумышленник собирает viewstate
пользователь отправляет форму входа в систему - генерирует файлы cookie авторизации
злоумышленник собирает подлинные куки
пользователь выходит из системы - сервер очищает файлы cookie пользователей и устанавливает для своего внутреннего флага сеанса значение null
Хакер man-in-the-middle-продолжает использовать предыдущие учетные данные, но поскольку сеанс, с которым он сейчас работает, имеет значение, равное null, сервер перенаправляет на страницу входа.
выиграть!