Вопрос

Существует ли надежный способ определить, откуда приходит пользователь в приложении ASP.NET?У нас есть веб-приложение, к которому подключены ссылки из двух разных мест.Две ссылки находятся на разных доменах, и они должны диктовать определенные разрешения пользователя в этом приложении.Вот что я пробовал до сих пор...

  • Используя Request.UrlReferrer (который является Референт HTTP-заголовок).Это всегда возвращало пустую строку.Я полагаю, это связано с тем, что гиперссылки используют Javascript для запуска всплывающего окна.Основываясь на моих исследованиях, пользовательский агент предоставляет этот HTTP-заголовок для стандартных гиперссылок.Всплывающие окна Javascript - это совсем другая история (очевидно).

  • Простая строка запроса для указания реферера.На самом деле это не вариант, потому что нам нужно что-то, что не так легко обойти (более безопасное).

Есть какие-нибудь идеи?Я понимаю, что по большому счету, это могло бы иметь лучший общий дизайн / структуру.Пожалуйста, не публикуйте ответ, предлагающий мне все переделать, потому что это не вариант.

Это было полезно?

Решение

Не существует надежного способа определить, откуда пришел пользователь, и это не только ограничение ASP.NET, но и всех веб-приложений в целом.Ссылка на URL может быть легко подделана, поэтому она ненадежна.Я думаю, что лучшим вариантом мог бы быть какой-нибудь зашифрованный параметр URL или файл cookie, если вы предпочитаете.

Таким образом, обе страницы должны согласовывать общие закрытые ключи.

  1. Страница 1 будет использовать ключ для шифрования своего адреса и передачи его на страницу 2
  2. Страница 2 проверит наличие этого параметра и попытается расшифровать его с помощью того же закрытого ключа, который использовался для шифрования
  3. Если это удастся, это означает, что страница 2 сможет определить, кто ее вызвал, если нет, то данные были подделаны

Другие советы

Без того, чтобы браузер передавал ссылку или использовал строку запроса, как вы описываете, нет никакого способа узнать.

Другой вариант - иметь две разные целевые страницы в приложении ASP.NET .Целевые страницы могут устанавливать параметры безопасности, а затем перенаправлять на общую домашнюю страницу.Это немного более безопасно, чем параметр querystring .

Или, вы можете разместить 1x1 пиксель изображения на ссылающихся сайтов, который вытащил из своего сайта приложение ASP.NET .Ссылка должна быть передана скрипту, и затем вы могли бы установить файл cookie на компьютере пользователя, на который вы затем можете ссылаться, когда он попадает на домашнюю страницу приложения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top