2016-12-20 1 views
2

Ich schreibe eine App, die einen API-Dienst eines Drittanbieters verwendet (z. B. Google Maps, Segment-Analytics usw.). Alle diese Apps geben einen API-Schlüssel, der in den JS-Code eingebettet werden soll.Wie verhindern APIs von Drittanbietern den Diebstahl von API-Angeboten?

So weiß jeder, der die Quelle überprüfen kann, den Clientschlüssel. Wie verhindern diese Dienste die missbräuchliche Verwendung dieses Schlüssels? Angenommen, jemand ruft diese APIs mit meinem Schlüssel so oft an, wie die maximal zulässige maximale API-Aufrufgrenze, wodurch die weiteren tatsächlichen API-Aufrufe fehlschlagen.

Ich weiß, dass Referrer Header verwendet werden kann, um den Ursprung der Anfrage zu überprüfen, aber Referrer Header kann leicht von einem erfahrenen Benutzer gefälscht werden.

Ich weiß nicht, ob irgendwelche Maßnahmen von den Diensten getroffen werden. Scheint wie ein sehr großes Problem.

Vielen Dank im Voraus.

Antwort

0

Es ist ein Risiko, aber es ist nicht so schlimm, wie es scheint, wenn der API-Provider vorbereitet ist.

Die erste Sache zu beachten ist, dass solch ein API-Schlüssel nicht für die Authentifizierung in dem Sinne verwendet wird, dass es den Aufrufer (weder die Anwendung noch den Endbenutzer) authentifiziert. Es ist nur für Dinge wie Ratenbegrenzung und Tracking.

Also Bedrohungen sind ähnlich wie Sie beschrieben, zum Beispiel jemand mit Ihrem API-Schlüssel und verbrauchen Ihre Quote. Wenn diese Person dies jedoch von ihrem eigenen Computer oder Netzwerk aus tut, wird der gesamte bösartige Verkehr von seinem IP- oder IP-Bereich gesehen. Wenn der API-Anbieter intelligent ist und über eine gute Überwachung verfügt (wie Google), wird er Ihren API-Schlüssel nicht widerrufen/deaktivieren, sondern nur den schädlichen Datenverkehr filtern oder ignorieren.

Der Angreifer sollte also in der Lage sein, eine Website mit Ihrem API-Schlüssel einzurichten und die Benutzer dazu zu bringen, sie zu besuchen. In diesem Fall können die Referer/Origin-Header jedoch nicht gefälscht werden, Browser erlauben normalerweise nicht, dass JavaScript den Referer oder den Ursprungsheader in der Anfrage ändert. Der API-Provider hat also eine Möglichkeit, bösartigen Datenverkehr basierend auf Referrer/Herkunft zu filtern.

Der Angreifer benötigt Zugriff auf viele verschiedene Clients, etwa ein Botnet, um all diese Anfragen mit Ihrem API-Schlüssel zu stellen, um Ihr Kontingent zu verwenden. Dies würde wahrscheinlich funktionieren, aber wenn ein Angreifer Ihre Website mit einem verteilten Denial-of-Service-Angriff angreifen kann, werden Ihre API-Schlüssel wahrscheinlich nicht Ihre Hauptsorge sein.

+0

Ich verstehe, dass einige Dienste den Verkehr von einer bestimmten IP filtern können. Was passiert, wenn meine Zielgruppe eine Schule ist, in der die meisten Anfragen von derselben IP stammen und der Angreifer ebenfalls auf der IP ist und die Quote verbraucht? – itssiva

Verwandte Themen