Frage

Einer unserer Anwendung wird in einem Iframe ausgeführt werden, innerhalb von Salesforce und ich habe Probleme mit den Referer erreichbar. Sie würden uns gerne ein paar referer Kontrollen tun, um sicherzustellen, dass die Anforderung von Salesforce kommt und wir haben die IP-Adressen gegeben worden zu prüfen, gegen.

Mein Problem ist, dass zu jeder Zeit ich versuche, die Referer durch eine der folgenden zwei Methoden zur Verfügung:

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

es gibt mich null.

Alle Ideen, wie kann ich halten, die Referer bekommen?

PS: Ich bin mir bewusst, dass Sie die Referrer fälschen können, aber es ist ein Teil der Forderung

.
War es hilfreich?

Lösung

Wenn ich die Frage richtig verstanden haben Sie Kunden-Websites, die auf Ihrer Website verweisen, indem IFrames in ihren Webseiten den Punkt auf Ihrer Website einbetten. Sie mögen „sicherzustellen“, dass die Anforderungen von Host-Seite kommen, die sich als Teil einer bestimmten Gruppe von Websites sind. Die Menge der ausgewiesenen Gebiete wird durch eine Reihe von IP-Adressen beschrieben. Ist, dass sie decken?

Tricky. Zunächst einmal lässt annehmen, dass Sie einen Referer haben. Sie müssen die Hostnamen von ihm erwerben (leicht genug, um den Uri Typ verwendet wird). Dann müssen Sie die IP-Adresse für die Hostnamen aufzulösen DNS (wieder nicht allzu schwer mit .NET-Framework) verwendet wird.

Natürlich benötigen Sie einen Referer zu bekommen, und das ist der schwierigste Bit. Browser stellt nicht immer einen Referer-Header in der Anfrage. Dies gilt insbesondere, wenn die Schiedsrichter-Adresse nicht in der gleichen Domäne wie der Referer ist, was hier der Fall ist. IOW, ist dies ein Hemmschuh .

Ein besserer Ansatz zur Lösung dieses Problems (und ist zu Spoofing nicht anfällig) ist eine Hash-basierte Authentifizierung zu verwenden. Nicht zu anspruchsvoll sein müssen (wenn die ursprünglichen Anforderungen der Referer Tests fühlte, war ausreichend sowieso).

Andere Tipps

Ein Referrer ist nur da, wenn die Seite über einen Link angefordert wurde. Wenn eine Seite geöffnet wird, in einem Browser aus der Adressleiste sagen, indem Sie direkt in der Adresse eingeben (oder in Ihrem Fall y die src Einstellung. Der IFRAME), wird der Referrer leer sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top