2016-03-07 2 views
1

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

  • гонки состояние между двумя запроса пытается изменить переменные сессии
  • Когда сеанс Идентификаторы регенерируют, что происходит с медленных запросов что доступ к серверу с идентификатором сессии старше

ответ

0

для вашего первого вопроса, see here для того, как ASP.NET обрабатывает это - «Синхронизация доступа к государству Session»:

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

Для вашего второго вопроса это будет не так, чтобы ваш код восстанавливал идентификатор сеанса в подходящей точке. Например, чтобы избежать session fixation, полезно восстановить идентификатор сеанса при входе в систему. На данный момент не должно быть других, медленных запросов, поступающих на сервер, поэтому это оптимальное время для выпуска нового идентификатора.

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

Смежные вопросы