Рубрики
Без рубрики

Что такое угона для сессии и как вы можете остановить его

Ramesh Lingappa Что такое угона за сессионом и как вы можете остановить историю itymy Cookiesthis, предназначена для начинающих и всех, у кого есть базовое понимание о куки (сеансы cookie), но кто не уверен, как правильно их защищать. Вам не нужно быть экспертом по безопасности, чтобы сделать

Ramesh Lingappa

Если у вас нет представления о файлах cookie или как они работают, тогда, пожалуйста, прочитайте эту статью о HTTP Cookies Отказ

Давайте доберемся до этого! У вас есть удивительное веб-приложение, предлагающее отличный сервис для клиентов. Это означает, что у вас будет Аутентификация механизм, чтобы получить пользователя к вашему приложению. Вы знаете, насколько важная безопасность. Вы реализовали всевозможные меры безопасности во время аутентификации. Большой!

После успешной аутентификации вы должны создать Сессия для этого пользователя. Это означает, что вы на самом деле создаете Cookie и отправка его обратно в браузер. Например, в веб-приложении Java по умолчанию он называется JsessiDID. Это выглядит что-то подобное:

Используя это cookie, только ваш веб-сервер способен определить, кто является пользователем, и он предоставит контент соответственно. И это печенье выглядит великолепно. Нет конфиденциальной информации в файле cookie, просто случайный идентификатор (не догадается). Так что пользователь Безопасно! …Правильно?

Ну не совсем, давайте посмотрим поближе.

В этом cookie есть два свойства: Httponly (HTTP) и Безопасный. Их ценности пустые, что означает не включен для этого cookie . Вот где доходит до того, что он больше не безопасен.

Это то, где вступает в поиска сеанса.

Таким образом, это акт кражи идентификатора сеанса клиента, с помощью которого они могут получить доступ к вашему веб-приложению, как будто они этот клиент.

Это возможно? Как они получают этот идентификатор сеанса, который находится в браузере пользователя?

Да, это возможно. Два свойства cookie (или флаги), которые мы видели ранее ( Httponly и Безопасная ) – это причина для этого.

Httponly Flag

Таким образом, в простых терминах, если вы не устанавливаете флаг HttPonly, то ваше cookie читается из переднего кода JavaScript.

Откройте любую веб-страницу, чью файл cookie не имеет набора флага HttPonly. Затем открыть Chrome Dev Console а затем нажмите Вкладка консоли (CMD + Shift + J или Ctrl + Shift + J). Тип Document.cookie И войти, и вы увидите что-то вроде этого:

Как видите, вы получаете все данные файла cookie. Атакующий JavaScript может просто опубликовать это на собственный сервер для последующего использования.

Вы можете задаться вопросом, как они могут написать этот код в вашем приложении. Это возможно несколькими способами.

Один из способов – ввести некоторые Недоставленная сторонняя библиотека JS как лесозаготовки, помощники утилит и т. Д. Прочитайте эту статью Я собираю номера кредитных карт и пароли с вашего сайта. Вот как Отказ

Еще один способ использует Крестная атака сценариев . Мы не собираемся попасть в детали этого, но помните, что это можно сделать.

Так как мы это исправить?

Заседание Cookie даже не нужно доступно клиентом JavaScript. Это нужно только для сервера. Мы должны сделать это только доступным для сервера. Это можно сделать, добавив одно слово ( Httponly ) в вашем set_cookie HTTP ответ заголовка. Нравится:

Set-Cookie: JSESSIONID=T8zK7hcII6iNgA; Expires=Wed, 21 May 2018 07:28:00 GMT; HttpOnly

Добавляя Httponly Флаг, вы инструктируете браузеру, что это cookie не следует читать с помощью кода JavaScript. Браузер позаботится обо всем остальном. Вот как он смотрит после добавления флага HttPonly:

Обратите внимание на галочку в свойстве HTTP. Это указывает на то, что Httponly включен.

Здесь вы можете увидеть это Document.cookie Не возвращает нашу сессию cookie. Это означает, что нет JS может прочитать его, включая любые внешние сценарии.

Вот это – один вниз, чтобы пойти!

Безопасный флаг

Безопасный Флаг поручает браузеру о том, что файл cookie должен быть возвращен только в приложение по зашифрованным соединениям, то есть подключение HTTPS.

Итак, когда файл cookie отправляется в браузер с флагом Безопасный, И когда вы делаете запрос на приложение, используя HTTP, браузер не прикрепит это cookie в запросе. Он прикрепит его только в запросе HTTPS. Запрос HTTPS будет зашифрован, поэтому файлы cookie будут безопасно отправляться по сети к вашему приложению.

Как кто-то может прочитать cookie в HTTP-запросе?

Это может быть достигнуто, когда кто-то (под названием «Мужчина » в середине « атака) контролирует весь трафик в сети клиентов. Они могут видеть четкие текстовые данные, если запрос находится в Http.

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

Так как мы это исправить?

Как и флаг HttPonly, вам просто нужно добавить Безопасный Флаг в вашем set_cookie HTTP ответ заголовка. Нравится:

Set-Cookie: JSESSIONID=T8zK7hcII6iNgA; Expires=Wed, 21 May 2018 07:28:00 GMT; HttpOnly; Secure

В Java это можно сделать несколькими способами. Если вы используете сервлете 3.0 или выше, вы можете настроить эти настройки в web.xml нравится:

            true        true     

Если ваша среда не поддерживает ее, вы можете добавить ее вручную. Например, использование сервлетов вы можете сделать это:

Наконец, вот как это выглядит, когда установлены оба флага,

Заключение

Поэтому, когда вы имеете дело с Session Cookie или любым другим важным файлом cookie, убедитесь, что вы добавляете эти два флага.

Спасибо за чтение, Счастливого крепления!

Оригинал: “https://www.freecodecamp.org/news/session-hijacking-and-how-to-stop-it-711e3683d1ac/”