У меня есть сообщение HTTPS, входящее через безопасную форму. Не вдаваясь в длительное объяснение: мне нужно вызвать действие в том же контроллере, который принимает два токена, переданных в качестве параметров. Когда я запускаю Fiddler, я вижу, что этот метод вызывается с параметрами в URL. Мой вопрос: ли это представляет угрозу безопасности? Есть ли более безопасный способ перенаправления внутри одного контроллера?Предоставляет ли RedirectToAction угрозу безопасности?
ответ
Да, это создает угрозу безопасности, но его легко смягчить, просто подтвердив, что URL-адреса, которые вы перенаправляете, находятся в пределах того же домена, что и ваш источник.
На самом деле, это на вершине OWASP 10.
A10 - Unvalidated Redirects and Forwards
EDIT:
Я просто понял, что я пропустил "ToAction" часть вопроса, поэтому нет .. Это на самом деле невозможно перенаправить за пределы сайта с помощью RedirectToAction, поэтому для этого не стоит беспокоиться. Однако, если вы используете прямой вход пользователя для подачи в ваш RedirectToAction (и который включает в себя прием почтовых данных, которые вы создаете на другой странице), возможно, злоумышленник может перенаправить на метод, которого вы не ожидали. Тем не менее, это ничем не отличается от пользователя, просто пробуя случайный URL-адрес и нажав на него, или зная URL-адрес и отправляясь на него вручную. Вам необходимо иметь авторизацию для предотвращения доступа к URL-адресам, которые пользователь не имеет разрешения на просмотр.
Если исходное действие доступно через HTTPS, то RedirectToAction
перенаправит на относительный URL-адрес в том же домене, используя тот же протокол.
Так что, если ваша исходная страница
https://www.example.com/Foo/Bar
и это перенаправляет на FooBar
действия с некоторыми параметрами маршрута:
https://www.example.com/Foo/FooBar/1/2/3
злоумышленник не может считывать параметры 1/2/3
, ни остальной части URL.
Однако, вещи, которые вы должны иметь в виду, являются:
- Параметры URL будут регистрироваться по умолчанию в браузере (историю), ваш сервер, корпоративных прокси-серверов и, возможно, другими устройствами в сеть по умолчанию.
- Если пользователь следует за любыми ссылками со своей страницы на другие URL-адреса
https
, заголовок HTTPreferer
будет содержать ваш адрес страницы, включая параметры. Однако современные браузеры не отправляют заголовокreferer
с ссылкамиhttp
. - Если на вашей странице будут представлены другие ресурсы
https
, это приведет к тому, что браузер отправит заголовокreferer
с запросом.
По этим причинам, если ваши параметры (1/2/3
) являются частными, то вы можете POST
эти данные на целевой странице, а не использовать RedirectToAction
(что приводит к GET
).
Обратите внимание, что вы должны подтвердить, что текущий пользователь имеет доступ к ресурсам, к которым относится 1/2/3
(например, если параметры были идентификатором заказа, вы должны проверить, что пользователь, идентифицированный своими файлами cookie, разрешает им видеть заказ ссылки). Удержание 1/2/3
является полезным только в том случае, если сами параметры чувствительны (например, номер социального страхования).
Обратите внимание, что уязвимость OWASP Top 10 «A10 - Неопределенные перенаправления и форварды» здесь не применяется, так как RedirectToAction
может перенаправлять только на другое действие. Если другое действие перенаправляется на пользовательский URL-адрес, тогда вместо него будет уязвимость.
- 1. Предоставляет ли phpMyAdmin угрозу безопасности при производстве
- 2. Может ли использование iframe представлять угрозу безопасности?
- 3. Опубликованные веб-трансляции представляют угрозу безопасности
- 4. Использует «exec» в контролируемых условиях угрозу безопасности?
- 5. Внутренние классы java представляют угрозу безопасности?
- 6. Включает ли все эти сторонние файлы javascript угрозу безопасности?
- 7. ASP.NET: подвергает ли RNGCryptoServiceProvider внешнему воздействию угрозу безопасности?
- 8. Сохраняет ли временное хранение конфиденциальных данных в iVar угрозу безопасности?
- 9. Использует ли файлы cookie угрозу безопасности приложений в asp.net?
- 10. Сохраняет ли теги изображений в базе данных sql угрозу безопасности?
- 11. Firebase Storage share загрузить url угрозу безопасности?
- 12. Отладочная информация как dSYM регистрирует угрозу безопасности при разборке?
- 13. Предоставляет токен безопасности CSRF для сеанса безопасности?
- 14. Отключение анонимного доступа в IIS создает угрозу безопасности?
- 15. Java обнаружила компоненты приложений, которые могут представлять угрозу безопасности
- 16. Использует .net Исключения, связанные с ошибкой WCF, представляют угрозу безопасности?
- 17. Подробные сообщения об исключениях/ошибках представляют угрозу безопасности?
- 18. Почему printStackTrace() представляет угрозу безопасности для мобильных приложений (Android)?
- 19. IPv6: Почему IPv4-сопоставленные адреса представляют угрозу безопасности?
- 20. Почему использование '*' в качестве targetOrigin для postMessage представляет угрозу безопасности?
- 21. Загрузить Insight, подвергая риску угрозу безопасности, с моим файлом setup.exe
- 22. Запуск от имени пользователя «корень» представляет собой угрозу безопасности, прерывании
- 23. Предоставляет ли метод возвращаемое значение гарантии безопасности типа?
- 24. Предоставляет ли угроза IP-адрес сервера?
- 25. Использует ли бритву в WebMatrix угрозу XSS?
- 26. метеор - есть ли правила публикации в папке lib представляют угрозу безопасности?
- 27. Позволяет загружать PDF-файлы от пользователей моего веб-приложения под угрозу безопасности?
- 28. Являются ли правила безопасности безопасности Firebase атомарными?
- 29. Предоставляет ли ANTLR семантику
- 30. Предоставляет ли cfldap cfqueryparam?
Спасибо. Я определенно делаю перенаправление в том же домене. Я делаю это в одном контроллере. Значит, я предполагаю, что это безопасно? Из того, что я читал в статье, это так. Я больше беспокоюсь о том, что хакер перехватывает параметры, прошедшие от результатов одного действия, другому. Это что-то, о чем мне нужно беспокоиться? – kickinchicken
@kickinchicken - вы не совсем понимаете. Если вы принимаете вход, который используется при переадресации, вы должны подтвердить, что этот ввод является, по сути, URL-адресом вашего домена. Просто потому, что вы только отправляете URL-адрес из своего домена, это не значит, что вы в безопасности. Вы должны проверить входные данные. –
Я вижу, что ты говоришь Эриком. В перенаправлении вход не используется. Перенаправление статично. Также - и я должен был объяснить это раньше, но это часть процесса SSO. Мы принимаем сообщение формы, выполняем некоторую работу, а затем перенаправляем ее действие. Входы представляют собой два strimg, ни один из которых не перенаправляется. Должен ли я беспокоиться о том, что когда перенаправление на GET происходит, что внешний хакер может перехватить это? – kickinchicken