Маркеры доступа с ограниченным использованием обеспечивают защиту от подмены запросов и атак повторного воспроизведения , гарантируя, что действие будет выполнено пользователем, которому было отправлено сообщение. Защита достигается путем добавления уникального параметра токена к параметрам запроса и его проверки при вызове действия.
Параметр token должен быть сгенерирован как ключ, который можно использовать только для определенного действия и конкретного пользователя. Перед выполнением запрошенного действия следует убедиться, что токен действителен и соответствует тому, который вы сгенерировали для пользователя. Если токен совпадает, то действие может быть выполнено, и токен становится недействительным для будущих запросов.
Маркеры доступа должны быть отправлены пользователю как часть свойства url
HttpActionHandler . Например, если ваше приложение обрабатывает запросы на утверждение по адресу http://www.example.com/approve?requestId=123
, вам следует подумать о включении в него дополнительного параметра accessToken
и прослушивать запросы, отправленные на http://www.example.com/approve?requestId=123&accessToken=xyz
.
Комбинация requestId=123
и accessToken=xyz
— это та, которую вы должны сгенерировать заранее, убедившись, что accessToken
нельзя вывести из requestId
. Любой запрос на утверждение с requestId=123
и без accessToken
или с accessToken
, не равным xyz
должен быть отклонен. Как только этот запрос будет выполнен, любой будущий запрос с тем же идентификатором и токеном доступа также должен быть отклонен.