В моем проекте я настроил сессии .NET для входа в базу данных.У меня также есть global.asax, который реализует Session_Start ().В Session_Start () я записываю три вещи для сессии:
- Время начала сеанса.
- Адрес хоста пользователя.
- Сериализуемый объект устройства, заключающий в себеагент пользователя.
Проблема в том, что пользователи, которые не разрешают использование файлов cookie, также не будут разрешать сеансовые файлы cookie.(Легко воспроизводится, если поместить URL-адрес сайта в ограниченные сайты IE).
Если я продолжу обновлять (положив палец на F5), для каждого запроса будет создан новый сеанс (-> нет файла cookie сеанса).Вскоре процесс веб-сервера увеличивается до нескольких сотен мегабайт.Не имеет значения, используете ли вы IIS7 или локальный веб-сервер Cassini.
Теперь проблема в том, что память не освобождается до истечения времени ожидания сеанса.Какова здесь логика, если сессии действительно должны идти в базу данных?Как долго .NET будет хранить их в памяти?В конце концов, вы даже получите исключения Out Of Memory!
Кто-нибудь знает?Как обнаружить и предотвратить такие (почти злонамеренные) «атаки»?
Рене