2017-09-04 3 views
2

Ich habe eine Anwendung entwickelt mit AngularJS für Front-End und Java für Back-End.Sichern von erholsamen api Anrufe

Problem ist, wenn der Benutzer sich bei der Anwendung anmeldet und nach bestimmten Daten sucht, wird ein API-Aufruf mit Payload JSON an den Server gesendet, als Antwort erhalten wir die Daten in JSON bezogen auf Suchparameter.

Problem hier ist Benutzer können Entwickler-Tool öffnen und die URL der API und JSON Nutzlast kopieren und veröffentlichen die gleichen Daten in Postman oder DHC Client und erhalten die Antwort JSON und mehr über er bezogenen Daten verändern können Rolle und erhalte Suchergebnisse, die sich auf andere Rollen/Benutzer beziehen.

Meine Frage ist, wie die API vor dem direkten Aufruf von anderen Quellen zu schützen und die Nutzlast zu ändern.

+0

Sie können Art von einigen Schlüsselmechanismus verwenden, wenn es in Payload verfügbar ist dann nur Sie Anfrage andernfalls nicht. Sie können dafür auch OAuth verwenden. –

Antwort

1

Es gibt keinen grundlegenden Unterschied zwischen den Anfragen, die die JavaScript-Client-App von Ihrem Browser sendet, und Anfragen, die manuell von anderen Tools wie Postman oder was auch immer gesendet werden. Es gibt im Allgemeinen kein Sicherheitsproblem, bis alle Ihre Anforderungen durch einen Authentifizierungsmechanismus wie OAuth oder einfach durch einige geheime API-Schlüssel geschützt sind, die bei jeder Anfrage übergeben werden (in diesem Fall sollten diese API-Schlüssel nur dem bestimmten authentifizierten Benutzer gehören!).

Beachten Sie, dass die Sicherheitsebene, die Ihr System vor böswilligen oder ungesicherten Operationen schützt, nur auf der Serverseite liegen sollte, nicht auf der Client-App. Das bedeutet, dass alles, was von einem bestimmten Benutzer aus der Client-App erledigt werden kann, von jedem anderen Tool (wie oben erwähnt) im "manuellen" Modus von demselben Benutzer ausgeführt werden kann.