Pergunta

Existe uma maneira confiável para determinar onde um usuário está vindo em um aplicativo ASP.NET? Nós temos uma aplicação web que está ligado a partir de dois locais diferentes. Os dois links estão em domínios separados, e eles precisam de ditar certas permissões de usuário dentro desta aplicação. Aqui está o que eu tentei até agora ...

  • Usando Request.UrlReferrer (que é o Referer cabeçalho HTTP). Isso sempre devolveu uma cadeia vazia. Eu acredito que este é porque os hiperlinks usar o Javascript para abrir uma janela pop-up. Baseado em minha pesquisa, o agente do usuário fornece este cabeçalho HTTP em hiperlinks padrão. popups Javascript são uma história diferente (evidentemente).

  • Uma cadeia de consulta simples para indicar a referência. Isto não é realmente uma opção porque precisamos de algo que não é tão fácil de derivação (mais seguro).

Todas as idéias? Eu entendo que, no grande esquema das coisas, isso poderia ter um design / melhor estrutura em geral. Por favor, não postar uma resposta sugerindo que eu re-design tudo, porque isso não é uma opção.

Foi útil?

Solução

Não há uma maneira confiável para dizer onde um usuário está vindo e isso não é apenas uma limitação ASP.NET, mas todas as aplicações web em geral. A referência url pode ser facilmente falsificado para que ele não é confiável. Eu acho que a melhor opção poderia ser algum parâmetro url criptografada, ou cookie se você preferir.

Assim, ambas as páginas devem concordar com chaves privadas comuns.

  1. Página1 usará a chave para criptografar seu endereço e passá-lo para Page2
  2. Page2 irá verificar a presença desse parâmetro e tentar decifrá-lo com a mesma chave privada usada para criptografar
  3. Se isto sucede isso significa que Page2 será capaz de determinar quem chamou, se não, os dados foi adulterado

Outras dicas

Sem o navegador passar um referencial ou usando o querystring como você descreve, não há nenhuma maneira de saber.

Outra opção é ter duas páginas de destino diferentes sobre a aplicação ASP.NET. As páginas de destino pode definir as opções de segurança e, em seguida, redirecionar para uma página inicial comum. Isto é um pouco mais seguro do que a opção querystring.

Ou, você pode colocar uma imagem de 1x1 pixel sobre os sites de referência que é puxado a partir do seu local de aplicação ASP.NET. A referência deve ser passado para o script e você poderia, então, definir um cookie na máquina usuários que você pode fazer referência quando batem a página inicial do aplicativo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top