Почему это важно
Перехвативший код не сможет обменять его без исходного значения, но PKCE не подтверждает пользователя и не отменяет проверку Redirect URI.
Что подтверждено
Клиент создаёт секретное проверочное значение, отправляет производную от него строку в запросе авторизации и предъявляет исходное значение при обмене кода на токен.
Граница применимости: Последовательность PKCE по RFC 7636.
PKCE защищает обмен кода авторизации, но не подтверждает личность пользователя и не заменяет точное сопоставление Redirect URI.
Граница применимости: Граница PKCE относительно проверки пользователя и адреса возврата.
Что проверить
- Создавайте новое проверочное значение для каждого запроса.
- Используйте метод S256.
- Принимайте проверочное значение только один раз.
Первоисточники
Proof Key for Code Exchange by OAuth Public Clients
Internet Engineering Task Force · RFC 7636, September 2015
Определяет code verifier и derived code challenge для привязки authorization code к начавшему flow client instance.
Открыть первоисточникBest Current Practice for OAuth 2.0 Security
Internet Engineering Task Force · RFC 9700, January 2025
Актуализирует OAuth security: exact redirect matching, PKCE, sender-constrained tokens и безопасный refresh-token lifecycle.
Открыть первоисточник