Ruby on Rails ActionCable: нужно ли вручную закрывать соединение в случае истечения срока действия токена аутентификации? - PullRequest
0 голосов
/ 08 мая 2019

Мы используем аутентификацию на основе токенов для нашего приложения. Срок действия токена ограничен.

Поток ясен для простого HTTP API - токен проверяется при каждом запросе, поэтому, если срок его действия истек, мы не разрешаем пользователю получить доступ к конечным точкам.

Но процесс аутентификации Connection в ActionCable вызывает у меня некоторые сомнения. Поток следующий:

  1. Клиент отправляет запрос на открытие соединения с токеном в параметрах / заголовках.
  2. Токен будет проверен, и соединение будет установлено.

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

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

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

...