Можем ли мы избежать захвата сеанса с помощью Spring Security?

Мы используем apache tomcat в качестве сервера для нашего веб-приложения на основе Spring MVC. Если пользователь вошел в систему из браузера, скажем, Chrome, и мы скопировали его JSESSIONID и вставили в другой браузер, скажем, Firefox, и тогда мы можем получить доступ к модулям, назначенным конкретному пользователю, вошедшему в Chrome, к тому, кто авторизовался из фаерфокса.

Как мы можем предотвратить такой захват сеанса с помощью Spring Security? или в целом, какие вещи мы должны закодировать, чтобы избавиться от перехвата сеанса. Спасибо!


person Navnath    schedule 06.06.2020    source источник
comment
Используете ли вы файлы cookie для обработки сеанса или параметры REST? Сеансовые файлы cookie недоступны для манипулирования javascript, поэтому они безопасны, плюс смена браузеров является приемлемым поведением. Атаки «человек посередине» могут обойти все эти меры, но нас это не касается.   -  person Nikos M.    schedule 06.06.2020
comment
спасибо @NikosM. для вашего ответа на самом деле JSESSIONID - это файл cookie, созданный tomcat для управления сеансом.   -  person Navnath    schedule 06.06.2020
comment
Отвечает ли это на ваш вопрос? Как выполнить базовую безопасность приложения Spring Boot   -  person Fausto Carvalho Marques Silva    schedule 06.06.2020
comment
@FaustoCarvalhoMarquesSilva спасибо, только http и добавление URL Мы уже настроили в нашем приложении.   -  person Navnath    schedule 06.06.2020


Ответы (2)


Я не думаю, что доступ к браузеру пользователя с зарегистрированным сеансом квалифицируется как «захват сеанса». Вы можете снизить риск, используя флаги httpOnly и secure при настройке файла cookie, поэтому он не может быть прочитан JavaScript и будет пересылаться только по защищенному каналу (HTTPS). Переход к чьему-то компьютеру и копирование файла cookie из одного браузера в другой — это совсем другая тема, и я не думаю, что вы можете что-то сделать с помощью Spring Security.

person Krisz    schedule 06.06.2020
comment
Спасибо, Крис. на самом деле то же самое я спрашивал у аудиторов безопасности, но они предложили отслеживать пользователя на основе IP и пользовательского агента и ограничивать доступ, если он не соответствует тому, с которого пользователь вошел в систему. - person Navnath; 08.06.2020
comment
Да, я считаю, что это обычная практика, но для нее нет специального готового решения с использованием Spring Security. - person Krisz; 08.06.2020
comment
@Navnath, как говорится, смена браузеров (например, прямой доступ к браузеру пользователей) не считается захватом сеанса. Кроме того, как пользовательский агент, так и IP-адрес можно легко подделать. Системы безопасности не учитывают эти случаи. куки-файлы должны быть http-ony и безопасными — это то, на что способна инфраструктура. С этого момента вы можете применять дополнительные меры, но, как говорится, многое можно подделать. - person Nikos M.; 09.06.2020
comment
@НикосМ. Да, дополнительный уровень кодирования добавлен, чтобы избежать такого случая. - person Navnath; 10.06.2020

Я сделал это, чтобы сделать его безопасным и HttpOnly, и это сработало. Процедура внедрения в Apache Tomcat: 1) Откройте файл httpd.conf. Найдите следующую строку, используя CTRL + F в текстовом редакторе:

 #LoadModule headers_module modules/mod_headers.so

2) Удалите #

3) Добавьте следующую запись в httpd.conf

Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure

4) Перезапустите HTTP-сервер Apache.

person Navnath    schedule 16.06.2020