2013-01-28 2 views
1

Предположим, у меня есть приложение для пирамиды, где я использую UnencryptedCookieSessionFactoryConfig для токенов csrf и аутентификации с помощью SessionAuthenticationPolicy. Тайм-аут по умолчанию для cookie сеанса равен 1200, что означает, что мой пользователь отключается через 20 минут, что довольно неприятно.Существует ли риск безопасности при изменении таймаута cookie сеанса?

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

Есть ли риск для безопасности при наличии долгоживущих файлов cookie? Это считается плохой практикой?

Я предполагаю, что токен csrf должен быть недолговечным. В этом случае для аутентификации я должен использовать AuthTktAuthenticationPolicy. Тот же вопрос: является ли файл cookie для проверки подлинности с max_age далеко в будущем плохой практикой?

ответ

2

Обратите внимание, что таймаут применяется только к пользователям, не связанным с сервером за это время. Посещение вашего сайта в течение 20 минут освежает куки.

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

Я бы использовал AuthTktAuthenticationPolicy для управления сеансами аутентификации пользователей; он предлагает более мелкомасштабный контроль за продолжительностью сеанса (см. этот older answer of mine).

Вы даже можете написать небольшой кусок javascript, который периодически запихивает сервер, когда пользователь активен (ввод клавиатуры и мыши, один раз в минуту), чтобы обновить этот файл cookie; закройте браузер, сессия автоматически исчезнет в течение 20 минут.

+0

Хорошо, спасибо за разъяснение. – madjar

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