Как в IdentityServer4 безопасно хранить ReturnUrl? - PullRequest
0 голосов
/ 07 апреля 2019

Я занимаюсь разработкой основного приложения DotNet для сервера идентификации, так что это вопрос не только о Dotnet, но и вопрос IDS4. Примером состояния, которое мне нужно поддерживать между страницами (логин, регистрация и т. Д.), Является returnUrl. Приложение, из которого выполняется миграция, использовалось для хранения его в переменной сеанса, но, насколько я понимаю, если я не запустил постоянную стратегию сеанса, это не будет хорошо масштабироваться.

Итак, в настоящее время я передаю его как поле в каждой модели представления, используемой каждым представлением, чтобы его можно было вернуть. Это разумный подход? Мне также понадобятся другие поля, чтобы обойти их, поэтому мне интересно, является ли это безопасным и логичным способом сделать это.

1 Ответ

1 голос
/ 08 апреля 2019

Итак, в настоящее время я передаю его как поле в каждой модели представления, используемой каждым представлением, чтобы его можно было вернуть. Это разумный подход?

Да, как вы решите передать его, зависит от вас, я выбираю тот же подход. Вы можете использовать TempData, Sessions или даже localStorage в качестве альтернативы. Я думаю, что иметь его в моделях (представлениях моделей) - это хороший подход, потому что вы явно указываете, где вы хотите, чтобы возвращаемый URL существовал, иначе он может сохраняться в контексте, который вам не нужен.

Теперь секретный вопрос, потому что, очевидно, вы сможете увидеть возвращаемый URL в поле адреса браузера.

В рамках настройки Identity Server 4 вы указываете, какие URL-адреса возврата вам разрешено перенаправлять обратно, поэтому я не думаю, что пользователи увидят URL-адрес перенаправления.

Следует учитывать следующее: что если пользователь поделится URL-адресом с кем-то еще в середине процесса аутентификации, смогут ли они возобновить работу с той части процесса, которую первоначальный пользователь остановил? это то, что вы хотите в своем приложении?

Если вы имеете в виду надежно, а не безопасно, напишите тесты, которые обеспечат вам уверенность в том, что ваш код работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...