2016-07-29 11 views
0

Beim Aufrufen einer API mit einem API-Schlüssel über js, welche Maßnahmen werden allgemein ergriffen, um den API-Schlüssel vor Diebstahl zu schützen? Die Call-Server-Seite wäre für dieses Szenario wahrscheinlich ideal, aber was ist mit Szenarien, in denen der API-Aufruf vollständig über js erfolgen muss?wie verhindert man apikey-diebstahl?

Antwort

1

Ich denke, Sie können einfach nicht. Wenn der API-Aufruf von einem Client (z. B. einem Webbrowser) aus durchgeführt wird, kann der Benutzer den ausgehenden Datenverkehr prüfen und den API-Schlüssel sehen. In diesem Fall kann ich von zwei Lösungen denken:

  • Machen Sie eine AJAX-Anforderung an Ihre Backend und den API-Aufruf in Ihrem Backend ausführen. Es könnte langsamer sein, weil zwei HTTP-Anfragen ausgeführt würden, aber der Client hätte niemals Zugriff auf den geheimen API-Schlüssel.

  • Wenn Sie die Kontrolle über das API-Back-End haben, ändern Sie die Authentifizierungsstrategie, um die Verwendung eines einzelnen freigegebenen API-Schlüssels zu vermeiden.

+0

Konnte die gesamte js-Datei nicht verschleiert werden? Dies würde alles verschleiern, einschließlich des API-Schlüssels – user6581627

+0

Ihr Problem ist nicht, dass jemand Ihren Code lesen könnte. Das Problem ist, dass der Webbrowser, selbst ohne den Code zu lesen, den verschleierten Code ausführt und eine klare und einfache HTTP-Anfrage ausführt, die vom Benutzer gelesen werden kann. – Bustikiller

+0

war "clear and e" eine iPhone Autokorrektur? – user6581627