Für den Zugriff auf sichere Dienste (tokenbasiert oder Anmeldeinformationen) empfiehlt Esri die Verwendung von Proxy-Dateien ( Beispiel .net github ). Wenn Sie Anforderungen über den Proxy weiterleiten, können Sie sichere Dienste im Namen des Clients anfordern, ohne Ihre Anmeldeinformationen offenzulegen. Sie können eine Eigenschaft mit dem Namen definierenallowedReferers
und eine Liste der verweisenden URLs zuweisen, für die der Proxy funktioniert. Grundsätzlich stellt der Proxy keine Anforderungen für verweisende URLs, die nicht definiert sind. Wenn diese Option aktiviert ist '*'
, wird jede verweisende Anfrage verarbeitet.
Das Problem ist; Der anfordernde Header kann von einem Hacker leicht gefälscht werden, indem lediglich eine falsche HTTP-Referer- Eigenschaft festgelegt wird. In dieser Situation können sie auf sichere Dienste zugreifen, indem sie alle ihre Anforderungen über den Proxy weiterleiten und den Referer-Header auf eine gültige Adresse setzen.
Ich suche nach Empfehlungen, wie ich dieses Problem am besten umgehen kann. Irgendwelche Empfehlungen?
quelle
agstoken
Schlüssels zu Cookies hinzufügen können . Dies erhöht nicht die zusätzliche Sicherheit, aber zumindest wird das Token nicht in der Abfragezeichenfolge angezeigt.Antworten:
Ich hoste den Java-Proxy in Apache Tomcat, der eine Anmeldeseite bereitstellt. Der ArcGIS-Proxy wird im selben Anwendungskontext wie die Anmeldeseite ausgeführt. Auf diese Weise erhalten meine Benutzer Zugriff mit Anmeldeinformationen, die in einer separaten, sicheren Datenbank gespeichert sind. Tomcat führt die übliche Sitzungsverwaltung durch, während der leicht geänderte ArcGIS-Proxy die verborgenen ArcGIS-Anmeldeinformationen und -Token verarbeitet. All dies erfolgt über HTTPS.
Das Ergebnis ist:
quelle
Ich denke, dieser Satz ist der Schlüssel. Wenn der Proxy sich beim GIS-Server authentifiziert, ist der Proxy mit Anmeldeinformationen konfiguriert? Wenn dies der Fall ist und diese Anmeldeinformationen Zugriff auf den angeforderten Kartendienst haben, scheint dies "wie beabsichtigt zu funktionieren".
Wenn der Proxy Anmeldeinformationen speichert / weitergibt, geht es dem Proxy mehr darum, Anmeldeinformationen sicher zu halten, als die Daten sicher zu halten. Stellen Sie sich eine Intranetsite eines Unternehmens vor, auf der Kartendaten eines sicheren Kartendienstes angezeigt werden.
Bedeutet die obige Aussage, dass ein externer Angreifer Ihren Proxy direkt erreichen kann? In diesem Fall müssen Sie sich mehr Sorgen machen als um einen gefälschten HTTP-Header.
Befinden sich die Benutzer, der Proxy und der GIS-Server alle in Ihrem Netzwerk oder verwenden die Benutzer den Proxy, um eine Verbindung zu GIS-Diensten außerhalb des Netzwerks herzustellen? Wenn Sie einige Details zu Ihrer Netzwerktopologie kennen, erhalten Sie möglicherweise bessere Antworten.
Bearbeiten: Wenn Sie eine öffentliche Webanwendung haben, die Ressourcen von einem gesicherten GIS-Server in einem Netzwerk abruft, möchten Sie wahrscheinlich eher einen Reverse-Proxy als einen Forward-Proxy.
quelle