Pergunta

Um dos nosso aplicativo será executado em um iframe, dentro Salesforce e eu estou tendo problemas com acessando o referer. Eles gostaria de nos fazer algumas verificações referer, para garantir que a solicitação é proveniente de força de vendas e que nos foi dado os endereços IP para verificar contra.

Meu problema é que sempre que eu tento acessar o referer através de um dos dois métodos a seguir:

HttpContext.Current.Request.ServerVariables["HTTP_REFERER"]
HttpContext.Current.Request.UrlReferrer

retorna me nulo.

Alguma idéia de como eu poderia se apossar do referer?

PS:. Estou ciente de que você pode falsificar o referer, mas é parte da exigência

Foi útil?

Solução

Se eu entendi a pergunta corretamente você tem sites de clientes que se referem ao seu site, incorporando IFrames em suas páginas o ponto para o seu site. Você deseja "garantir" que os pedidos são provenientes de página de acolhimento, que em si é parte de um conjunto designado de sites. O conjunto de locais designados é descrito por um conjunto de endereços IP. Será que cobri-lo?

Tricky. Primeiro vamos supor que você tem um referer. Você precisará adquirir o nome do host a partir dele (bastante fácil usando o tipo Uri). Então você precisa para resolver o endereço IP para o nome do host usando o DNS (mais uma vez não muito difícil com .NET framework).

Claro que você precisa para obter um referer e que é a pouco mais complicada. Browsers nem sempre colocar um cabeçalho de referência na solicitação. Isto é especialmente verdadeiro quando o endereço árbitro não está no mesmo domínio que o referer, que é o caso aqui. IOW, este é um showstopper .

A melhor abordagem para resolver este problema (e não é propenso a spoofing) é usar algum autenticação baseada hash. Não tem que ser muito sofisticado (se os requisitos originais sentiu o teste referer era de qualquer maneira suficiente).

Outras dicas

A referrer existe apenas se a página foi solicitada através de um link. Quando uma página é aberta exemplo da barra de endereços em um navegador, digitando o endereço diretamente (ou no seu caso definir o src y. Do IFRAME), o indicador estará vazia.

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