Почему некоторые службы позволяют пользователям указывать URL в своих личных / торговых учетных записях, а не просто получать URL из запроса? - PullRequest
0 голосов
/ 15 мая 2019

У меня есть node.js сервер, который получает POST request, выполняет бизнес-логику, подготавливает URL с параметрами запроса и перенаправляет на return_url

module.exports = (req, res, next) => {

  // some business logic here

  const url = `${req.body.return_url}?param1=${param1}&param2={param2}`
  return res.redirect(301, url);
}

Итак, для моей службы return_url - это требуется тело параметр и я в порядке

НО.Есть некоторые API сервисов, которые имеют ту же логику, но они также имеют эту функцию:

enter image description here

Вы должны вставить свой return_urlв личном / торговом аккаунте, который будет сохранен в базе данных сервиса

Сейчас return_url является необязательным параметром , но вы также можете включить return_url в тело POST request, и сервис будетперенаправить на предоставленный return_url в body params

Таким образом, это означает, что служба переходит в базу данных (кэш) для получения return_url.Я думаю, что это дополнительное действие для меня как разработчика (и для пользователя / клиента).Да, я думаю, что это бесполезный случай, потому что вы должны помнить, что return_url вы указали в личном / торговом аккаунте, если что-то пойдет не так.

Наверное, я пропустил что-то важное, возможно, что-то о безопасности

Итак, мой вопрос: Почему некоторые службы позволяют пользователям указывать return_url в своих личных / торговых учетных записях, а не просто получать return_url из POST request и перенаправлять на него?

UPD.Просто добавьте ссылки с помощью Amazon Pay return_url

https://pay.amazon.com/us/developer/documentation/express/201737790 https://pay.amazon.com/us/developer/documentation/express/201737820

Paypal return_url https://www.youtube.com/watch?v=o_i955s-iq8

...