Domanda

Un nostro applicazione verrà eseguita in un iframe, all'interno di Salesforce e sto avendo problemi con l'accesso alla referer. Vorrebbero noi di fare alcuni controlli referer, per assicurarsi che la richiesta è venuta da Salesforce e c'è stata data gli indirizzi IP per controllare contro.

Il mio problema è che ogni volta che provo ad accedere al referer attraverso uno dei seguenti due metodi:

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

mi restituisce nulla.

Tutte le idee come avrei potuto entrare in possesso del referer?

PS: Sono consapevole del fatto che si può falsificare il referer, ma fa parte del requisito

.
È stato utile?

Soluzione

Se ho capito bene la domanda che avete siti dei clienti che fanno riferimento al tuo sito, grazie all'integrazione di IFrame nelle loro pagine web il punto al tuo sito. Si vuole "garantire" che le richieste sono provenienti da pagina host che a sua volta fa parte di un insieme designato di siti. L'insieme dei siti designati è descritto da una serie di indirizzi IP. Fa che lo ricoprono?

Tricky. Prima di tutto lascia supporre che hai un referer. Sarà necessario acquisire il nome host da esso (abbastanza facile utilizzando il tipo di Uri). Allora avete bisogno di risolvere l'indirizzo IP per il nome host utilizzando DNS (ancora una volta non troppo difficile con il framework .NET).

Naturalmente è necessario per ottenere un riferimento e che è il bit più delicata. I browser non sempre pongono un'intestazione referer nella richiesta. Questo è particolarmente vero quando l'indirizzo arbitro non è nello stesso dominio del referer, che è il caso qui. IOW, questa è una showstopper .

Un approccio migliore per risolvere questo problema (e non è soggetto a spoofing) è quello di utilizzare un po 'di autenticazione basata su hash. Non deve essere troppo sofisticato (se i requisiti originali sentito il test referer era sufficiente in ogni caso).

Altri suggerimenti

Un referrer è lì solo se la pagina è stata richiesta attraverso un link. Quando una pagina viene aperta dire dalla barra degli indirizzi in un browser digitando l'indirizzo direttamente (o nel tuo caso y impostare lo src. Del IFRAME), il referrer sarà vuota.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top