2009-06-21 8 views
4

Ich möchte wissen, wie eine URL-basierte API-Einschränkung funktioniert, wie sie Google zum Schutz seines Google Maps-Dienstes verwendet.URL-basierte API-Schlüsseleinschränkung: Wie funktioniert die Validierung?

Von dem, was ich aus diesem Artikel "Restricting Access to Ajax Services" verstehe, sind zwei Teile beteiligt: ​​erstens, wo der Dienst einen bestimmten Schlüssel für eine bestimmte Domäne erstellt, mit einer Einweg-Hash-Funktion; und zweitens, wo der Dienst den Schlüssel basierend auf dem Referer-Header validiert.

Während der Artikel ziemlich erklärend ist, habe ich immer noch ein Problem zu versuchen zu verstehen, wie sicher die Validierungsmethode ist. Ich meine, wenn der Schlüssel nur gegen den Referer geprüft wird, ist das nicht ganz einfach zu schmieden? Ich denke, dass ein einfaches "127.0.0.1 www.mydomain.com" in der hosts-Datei ausreichen wird, um die Validierung zu überlisten, und denke, dass der Referer www.mydomain.com ist.

Ich könnte einige Dinge missverstanden haben und ein paar Erläuterungen werden geschätzt.

+0

Es sieht so aus, als wäre Ihr Link schlecht. Wenn Sie eine Chance haben, es zu korrigieren, werde ich gerne einen Blick darauf werfen! –

Antwort

1

Der Abschnitt "Einschränkungen" des von Ihnen zitierten Artikels erwähnt ausdrücklich die Möglichkeit, den Referrer zu spoofen.

Das Ändern der Host-Datei kann zwar ausreichen, um Ihren Referrer zu fälschen, aber nur, wenn Sie von Ihrem eigenen Computer aus auf die Site zugreifen. Das bedeutet, dass Sie die Lizenz nur beim lokalen Testen missbrauchen können. Das ist kein sehr interessanter Missbrauch.

Um Ihre App zu veröffentlichen, müssen Sie die Referrer auf jeden Browser fälschen, wenn Sie die API von einem lokal ausgeführt ausführbaren verwenden, in dem Fall, dass Sie wahrscheinlich alle in der vollen Kontrolle sind die Header.

+0

Ich verstehe jetzt. Aber ich denke, wenn der API-Schlüssel verwendet wird, um Daten in einen Dienst zu schreiben, wie etwa einen Analytics-Tracker wie Google, könnte jemand einen modifizierten Header auf seinem eigenen Computer verwenden, um falsche Daten in den Dienst zu injizieren. Praktisch sehe ich nicht so viele Fälschungen, aber theoretisch ist es möglich, denke ich. Vielen Dank für Ihre Zeit, Ihre Antwort und für die Reparatur meines Links. – ivb

Verwandte Themen