Как безопасно перенаправить между страницами - PullRequest
2 голосов
/ 03 мая 2019

У меня есть Flask Web-приложение с множеством разных подстраниц, которые перенаправляют друг на друга. До сих пор я всегда передаю HTTP-параметр следующим.

Допустим, пользователь пришел от

/old/url

и посещения

/new/url?next=/old/url

тогда я просто анализирую запрос Http и проверяю, есть ли следующий параметр:

return redirect(request.args.get('next') or url_for('.index'))

Проблема, которую я обнаружил, заключается в том, что у меня также есть конечная точка API для удаления. Так что может быть созданная вредоносная ссылка типа:

/new/url?next=/item/delete/<item_id>

Таким образом, при перенаправлении пользователя этот элемент удаляется. А поскольку пользователь, скорее всего, прошел проверку подлинности, сервер будет рассматривать запрос как действительный запрос

Есть ли лучшие практики для подобных вещей (или моя конечная точка API или перенаправления)?

Привет

...