3 Stimmen

Website-API nur für meinen Android-Client

Ich möchte eine Android-App für meine Website entwickeln. Eine Möglichkeit ist es, eine API für die Website zu haben und die App diese API verwenden zu lassen. Ich möchte jedoch, dass diese API verwendet wird NUR von meiner Android-Anwendung verwendet wird, möchte ich nicht, dass ein anderer Client diese API verwendet.

Gibt es eine Möglichkeit, dies zu gewährleisten?

Ich kann mir eine Möglichkeit vorstellen: ein Geheimnis in die App einbauen und die App dieses Geheimnis immer an die API weitergeben lassen. Ich bin mir aber nicht sicher, wie sicher dieser Ansatz wäre, da jeder Paketschnüffler die Parameter und damit das Geheimnis leicht ausspähen kann. Irgendwelche anderen Vorschläge?

4voto

Matthew Rudy Punkte 16524

Ich glaube, dies ist etwas Ähnliches wie eine Frage, die ich vor ein paar Tagen beantwortet habe. Absicherung einer REST-API von Android aus

Finden Sie nämlich eine Möglichkeit, alle Ihre Anfragen mit einem gemeinsamen Geheimnis zu authentifizieren.

Wenn Sie sowohl den Pfad als auch die Parameter mit einem Geheimnis signieren, sollte es für jemanden keine Möglichkeit geben, Anfragen zu fälschen.

3voto

Bajji Punkte 2027

Endlich habe ich die Antwort im Blog der Android-Entwickler gefunden Artikel .

1voto

slayton Punkte 19950

Die kurze Antwort lautet: Nein, tut mir leid. Wenn jemand wirklich Ihre Website/Api/Gerät/Programm/ hier etwas einfügen und sie die Zeit und die Mittel haben, dann werden sie es tun.

Um Ihre Frage direkt zu beantworten: Die Aufnahme eines Schlüssels in Ihre Anwendung ist nicht sicher, da jeder die Anwendung dekompilieren und versuchen kann, den Schlüssel aus den Quelldateien zu rekonstruieren, ohne den Datenverkehr abhören zu müssen.

1voto

Laurent' Punkte 2591

Korrigieren Sie mich, wenn ich falsch liege! Packet Sniffer können nur mit unverschlüsseltem WiFi und in (mittlerweile) seltenen Netzwerkkonfigurationen (ein Router oder ein Switch verhindern sie) verwendet werden.

Für ernste Angelegenheiten sollten Sie gesicherte Verbindungen (https) in Betracht ziehen.

Für Standardinhalte halte ich jedoch eine Passphrase für ausreichend sicher. Viele beliebte Webanwendungen verwenden nur ein Cookie über http, um sich anzumelden, was genau das ist, was Sie vorschlagen.

0voto

Mike Marshall Punkte 7738

Ich hatte mit diesem Problem zu kämpfen und habe schließlich eine Version von OAuth zur Sicherung meiner API. Es kann schwierig sein, wenn Sie nicht einen Browser starten, um den "Login"-Teil von OAuth durchzuführen. Ich habe die Anmeldung direkt in meine App integriert und den Token-Austausch im Verborgenen durchgeführt. Es ist zu aufwändig, den Code hier zu posten, aber es funktioniert hervorragend. Offensichtlich ist HTTPS für ein zusätzliches Maß an Sicherheit gewünscht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X