Ich habe einen Webserver, der nur Downloads von Dateien ermöglicht, wenn Sie ein Token auf dem Querystring übergeben. Dieses Token (im Grunde ein Hash) wird mit dem Hash-Ergebnis des Dateipfads + Remote-IP verglichen.Umgang IP-signierte URL und Ändern von IPs
Das hat perfekt funktioniert! Da jedoch ein Projekt von mir mehr öffentliches Interesse gewonnen hat, haben sich obskure Probleme gezeigt.
Die Benutzer rufen die signierten URLs von einer API ab. API load balanciert die Anfrage und gibt eine gültige URL für die anfragende IP zurück. Allerdings haben einige Leute wirklich funky Netzwerk-Setups und können grundsätzlich ihre IP-Adresse von Anfrage zu Anfrage ändern! Z.B. Einige Universitätsnetzwerke leiten das gesamte Internet über einen Loadbalanced-Proxy.
Das ist sehr problematisch ... Ich habe versucht, eine Alternative zu finden, aber ich bin irgendwie fest. Das einzige, was ich mir vorstellen kann, ist eine auslaufende Verbindung, die nicht an die IP gebunden ist, aber das bringt andere Arten von Problemen mit sich.
Welche Optionen habe ich außer ablaufenden URLs? Was kann ich tun, um das IP-basierte System weiterhin zu verwenden? Ich kann Proxy-Header nicht vertrauen. Ich muss mit Informationen arbeiten, die die Benutzer nicht direkt manipulieren können ...
Ich habe auch darüber nachgedacht, stattdessen ein Token für einen IP-Bereich zu generieren. Aber es ist nicht ideal und löst nur das Problem, wenn die IPs in Reichweite sind (von denen ich schon Fälle gesehen habe). Also stecke ich im Moment fest.
Würde gerne über das lesen, was Sie vielleicht vorschlagen.
Mit welcher Bedrohung möchten Sie sich schützen? –
Gute Frage. Grundsätzlich teilen Sie die URLs mit den Dateien. Im Allgemeinen werden Sie, sobald Sie über die API angefordert und genehmigt wurden, sofort mit dem Herunterladen einer oder mehrerer Dateien beginnen. Auslaufende Tokens sind deshalb auch problematisch. Da ist nicht zu sagen, wie lange man braucht, um Sachen herunterzuladen, und ich möchte signierte URLs im Stapel senden. Nicht eins nach dem anderen. Dieses Töten für die Bandbreite, da manchmal mehr als tausend Dateien heruntergeladen werden müssen. Nur diejenigen, die von der API genehmigt wurden, greifen auf die Dateien vom zugewiesenen Loadbalanced-Server zu. –