Tinkoff / invest-openapi

Документация для Тинькофф Инвестиции OpenApi
https://tinkoff.github.io/invest-openapi/
456 stars 52 forks source link

Авторизация браузерного Websocket клиента. Часть III. #543

Closed nonamegithub closed 3 years ago

nonamegithub commented 3 years ago

Часть II здесь, часть I здесь. Мда... Насчет неправильности вопросов нет, но на данный момент это единственный способ решить проблему. Причем можно ничего не менять на стороне банка, а всего лишь повесить небольшой HTTPS->HTTPS прокси на бэкенде. А вот с утверждением насчет безопасности вы явно погорячились. При использовании WSS-протокола (он же, по сути, HTTPS) токен можно передавать хоть в параметрах query string - трафик все равно будет зашифрован. Утечка или компрометация токенов, в таком случае, будет возможна лишь на стороне банка (например, из файлов журнала HTTP-сервера). Давайте будем считать, что вы этого не писали, а я этого не видел, или, если хотите, расскажите это бабушкам у подъезда. Реализация банком обещания использования gRPC в следующей версии может растянуться на года. Итак, AlexanderVolkovTCS, поставь "+" в ответ на это сообщение в качестве согласия использования предложенного мною костыля, и на твой e-mail будет отправлен код прокси на JavaScript, который можно будет развернуть хоть сегодня.

AlexanderVolkovTCS commented 3 years ago

Чтобы старые клиенты не отвалились, сервер также должен возвращать клиенту WebSocket-Protocol. Костыль накладывает ограничения на допустимые символы токена(запятые), вариант с прокси не пройдет по инфраструктурным причинам. Хоть gRPC ждать осталось не так долго, но мы подумаем, что можно сделать уже в ближайшее время.