Действительно, code_verifier
чувствителен: это механизм, с помощью которого клиент при вызове к конечной точке токена доказывает, что именно он инициировал запрос авторизации.
Это значениедолжен храниться в секрете, см. также ниже.
Утечка может позволить злоумышленнику выдать себя за (общедоступного) Клиента при вызове конечной точки токена Сервера авторизации, таким образом получить токены, предназначенные для реального Клиента..
Обратите внимание, что даже если не использовать какое-либо преобразование (хэширования) на code_verifier
, но отправить его как plain
в code_challenge
в запросе авторизации, это все равно затруднит злоумышленнику, которыйможет перехватить обратный вызов на URI перенаправления, поскольку ему также придется перехватывать исходящий запрос.
Но в общем случае code_verifier
следует хэшировать с SHA256 в code_challenge
, так что даже при перехвате запросазлоумышленник не может вывести code_verifier
.