Ich habe einen JSON-Webdienst, den ich nur für bestimmte Websites bereitstellen möchte. Es ist ein Service, der über JavaScript mit JSONP aufgerufen wird. Wie würde ich verhindern, dass nicht autorisierte Websites darauf zugreifen (oder es im besten Fall schwieriger machen)? Die Anforderung eines Benutzers/Passworts funktioniert nicht, da dies in JavaScript deutlich sichtbar wäre.Schützen eines JSON-Webdienstes
Beispiel: Mein Web-Service auf domain.com bietet Wetterinformationen und ich möchte nur, dass website.com und webpage.com darauf zugreifen können. Da der Webservice jedoch über JavaScript aufgerufen wird, kann lazywebsite.com nur die Quelle der Website/Webseite anzeigen und ihren JavaScript-Code kopieren/einfügen.
Meine Gedanken so weit:
- einen API-Schlüssel verwenden und die
HTTP_REFERER
von einzuloggen, wo der Dienst aus zugegriffen wird. Dies ist nicht ideal, daHTTP_REFERER
unzuverlässig ist. - Lassen Sie website.com/webpage.com eine eindeutige Schlüssel-Server-Seite erstellen, die einen von mir bereitgestellten Algorithmus verwendet, speichert ihn in einer Sitzung und verwendet diesen als Schlüssel für den Zugriff auf den Web-Service. Auf diese Weise wird das Token nur für diesen bestimmten Besucher registriert und der JS kann nicht kopiert/eingefügt werden. Das Problem wird dann auf website.com/webpage.com verschoben, um die Seite zu schützen, die den eindeutigen Schlüssel generiert.
Gibt es bessere Lösungen?