Entschuldigen Sie @MarkAmery und Eugene, aber das ist falsch.
Ihre im Browser ausgeführte js + html (Client) -App kann so eingerichtet werden, dass nicht autorisierte direkte Aufrufe der API wie folgt ausgeschlossen werden:
- Erster Schritt: Richten Sie die API so ein, dass eine Authentifizierung erforderlich ist. Der Client muss sich zuerst über den Server (oder einen anderen Sicherheitsserver) authentifizieren und beispielsweise den menschlichen Benutzer auffordern, das richtige Kennwort anzugeben.
Vor der Authentifizierung werden die Aufrufe der API nicht akzeptiert.
Während der Authentifizierung wird ein "Token" zurückgegeben.
Nach der Authentifizierung werden nur API-Aufrufe mit dem Authentifizierungstoken akzeptiert.
Zu diesem Zeitpunkt können natürlich nur autorisierte Benutzer mit dem Kennwort auf die API zugreifen. Wenn sie jedoch Programmierer sind, die die App debuggen, können sie zu Testzwecken direkt darauf zugreifen.
- Zweiter Schritt: Richten Sie nun eine zusätzliche Sicherheits-API ein, die innerhalb kurzer Zeit aufgerufen werden soll, nachdem die Client-App js + html ursprünglich vom Server angefordert wurde. Dieser "Rückruf" teilt dem Server mit, dass der Client erfolgreich heruntergeladen wurde. Beschränken Sie die Funktion Ihrer REST-API-Aufrufe nur, wenn der Client kürzlich und erfolgreich angefordert wurde.
Um Ihre API verwenden zu können, müssen sie zuerst den Client herunterladen und ihn tatsächlich in einem Browser ausführen. Erst nach erfolgreichem Empfang des Rückrufs und anschließender Benutzereingabe innerhalb kurzer Zeit akzeptiert die API Anrufe.
Sie müssen sich also keine Sorgen machen, dass dies ein nicht autorisierter Benutzer ohne Anmeldeinformationen ist.
(Der Titel der Frage "Wie sichere ich REST-API-Aufrufe?" Und nach den meisten Ihrer Aussagen ist dies Ihr Hauptanliegen und nicht die wörtliche Frage, wie Ihre API aufgerufen wird, sondern von wem, richtig? )