Ich habe Rest APIs für meine Android App erstellt. Alle APIs sind mit OAuth2 (password grant_type) geschützt.Sichere Ruhe APIs für vertrauenswürdige Anwendungen
Benutzer stellt den Benutzernamen & Passwort und Server überprüft die Anmeldeinformationen und Fragen access_token und refresh_token, die dann für den Aufruf von APIs verwendet werden können.
Jetzt ist das Problem hier, dass APIs öffentlich und offen für alle sind. Wie kann ich sicherstellen, dass nur von My Apps generierte Anrufe berücksichtigt werden?
Szenario: XYZ ist ein Benutzer von My App und auch ein sehr guter Entwickler. Er war neugierig genug, um herauszufinden, wie meine App und Apis interagieren. Jetzt ist er auch ein bisschen ehrgeizig (ich denke) und beschließt, seine eigene Android-App (ähnlich meiner App) zu erstellen und nutzt meine Rest-APIs. Wie kann ich meine APIs gegen diese Verwendung sichern?
Ich schaute über einige andere Beiträge, aber ich fand nichts nützliches, um meine APIs vor einer solchen Verwendung zu schützen.
Wenn Ihr Server oauth2 implementiert hat, wie Sie sagen, dann würde jede Anwendung eine Client-ID und Client-Secret für den Zugriff auf Ihre API benötigen. – akash93
Da ich nicht zulassen, dass andere Apps basierend auf meinen APIs erstellen. Meine APP wird die clientId haben und diese wird verwendet, um die App zu überprüfen, aber diese clientId kann entdeckt werden, wenn jemand meine APK in den Quellcode dekompiliert. Jetzt, wenn jemand clientId entdeckt hat, kann er eine App erstellen, um dasselbe zu tun, was meine App tut. – behinddwalls
Es ist unmöglich, Ihren Client unzerbrechlich zu machen, aber Sie können sich auf einige Wege beziehen, um es schwieriger zu machen https://stackoverflow.com/questions/14570989/best-practice-for-storing-private-api-keys-in -Android – akash93