Здравствуйте, я собираюсь перейти от использования googles потока на стороне клиента в
Гибридный поток на стороне сервера, потому что перед отправкой клиенту access_token, который я собирался затем отправить на сервер, чтобы затем проверить пользователя перед входом в него или созданием новой учетной записи для него, но так как я не могу заставить работать cors с https я не могу его безопасно отправить.
Я посмотрел по-разному, и кажется, что гибридный поток на стороне сервера — это тот, который я всегда хотел, Единственный вопрос, который у меня есть, это безопасно ли отправлять одноразовый код авторизации через http, используя ajax?
Я полагаю, что это потому, что его можно использовать только один раз, и как только сервер его использует, который будет превышать https с помощью curl, он больше не будет иметь никакого значения. В этом случае access_token будет только на сервере и никогда не будет на клиенте, который кажется намного более безопасным, чем старый способ использования потока на стороне клиента.
Краткий ответ: точно нет
Более длинный ответ зависит от уровня риска и того, какой риск вы готовы принять, но в целом это кажется плохой идеей. Предполагается, что либо соединение между клиентом и сервером имеет низкую вероятность перехвата или манипулирования, либо что информация, защищаемая oauth, имеет невероятно низкую ценность, которую никто никогда не попробует. Ничто из этого не кажется безопасным.
Например, и просто случайно, мошенническому маршрутизатору между клиентом и сервером не составит труда перехватить запрос (если он знает о его вероятности) и сначала использовать сам код клиента. Это может вызвать всевозможные проблемы как на вашем сервере, так и на клиенте, на решение которых может потребоваться некоторое время … во время которых мошенник имеет доступ к любой службе, которая была авторизована. Есть другие сценарии, похожие на этот, которые могут быть в равной степени проблематичными.
Лучший вопрос — почему ты хочешь это сделать? Есть ли причина, по которой вы не хотите настраивать сервер SSL, даже если он имеет самозаверяющий сертификат?
Других решений пока нет …