Oauth 2 - упорядочение параметров и целостность подписи

У меня два вопроса:

Q1: Почему OAuth2 требует упорядочивания параметров и закодированный (для двуногих)?

Все, о чем он должен беспокоиться, - это совпадение подписи в обоих концах для заданных данных (строки запроса).

Мы можем просто проверить сгенерированную подпись с помощью строки запроса (например,? A = 1 & b = 2). Поскольку подпись генерируется на основе секретного ключа, который известен только клиенту и поставщику, мы можем рассматривать только строку запроса без какого-либо упорядочивания / кодирования.

Итак, в чем преимущество выполнения упорядочивания / кодирования и последующего создания подписи?

Q2: Как эта подпись может спасти меня от атаки «злоумышленник посередине»?

Если мне придется сделать это такой запрос к моему серверу от клиента:

increaseUserPoints?userId=1&pointsToAdd=5&appId=x&token=XYZ

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

6
задан Jason Sundram 25 January 2013 в 18:26
поделиться