Подтвердить что ты не робот

Играет! рамки имеют встроенный механизм для предотвращения захвата сеанса?

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

4b9b3361

Ответ 1

Документация по игре имеет хороший раздел безопасности, поэтому вместо дублирования здесь ссылка - http://www.playframework.org/documentation/1.2.4/security.

Он охватывает

  • XSS
  • SQL Injection
  • Безопасность сеанса
  • Подделка запроса на межсайтовый запрос

Некоторые из вас должны реализовать себя, а другие - нет.

Ваш конкретный вопрос о захвате сеанса является автоматическим.

Сессия - это хэш ключа/значений, подписанный, но не зашифрованный. Что означает, что пока ваш секрет безопасен, невозможно сторонних сессий.

Ответ 2

Нет, нет встроенного способа предотвратить захват сеанса, как только вы сможете захватить файл cookie сеанса (через sniffing/man in the middle). Есть несколько способов сделать это сложнее, например:

  • используя только https
  • настройка application.session.httpOnly в application.conf

Один из способов сделать это сложнее:  - храните ip/user-agent/resolution/other stuff или хэш этого также в сеансе. В вашем контроллере вы затем проверяете, сохраняет ли пользователь, который обращается к вашему сайту, один и тот же хэш... единственная реальная проблема - с людьми, которые используют прокси-сервер, например изменяет ip на лету из-за кластеризации.

Небольшой трюк, который вы могли бы попробовать: (работает только в последних браузерах) Когда пользователь входит в систему, сохраните некоторые вещи в локальном хранилище HTML5. Измените свои Ajax-вызовы для предоставления этой информации из локального хранилища. Если информация отсутствует/недействительна, вы можете аннулировать весь сеанс. Но вам нужно убедиться, что проверки применяются только к запросам браузеров HTML5.

надеюсь, что это немного поможет.