2016-12-21 1 views
2

Ich habe eine App für Android gemacht, die die Retrofit HTTP API verwendet, um PHP-Skripte aufzurufen, die eine Datenbank abfragen.Wie kann ich mich über Android mit meinem MySQL-Datenbank-Backend verbinden, ohne dies der Öffentlichkeit zugänglich zu machen?

App -> Retrofit-Aufruf -> PHP -> Datenbank

Die PHP und die Datenbank sind beide auf der gleichen Instanz Amazon EC2 gehostet.

Ich möchte, dass meine App für viele Benutzer bereitgestellt werden kann, aber ich weiß nicht, wie ich mein Backend privat halten kann.

Damit die App mit der Datenbank interagieren kann, muss PHP verwendet werden. Da die IP-Adressen der Benutzer variieren, muss die IP-Adresse des PHP-Codes öffentlich sein, damit alle Benutzer Daten senden/herunterladen können.

Das Problem ist, dass dies mein Backend für jeden offen lässt, der die IP-Adresse ausspionieren möchte. Wie kann ich dieses Problem umgehen? Ist PHP/MySQL eine schlechte Wahl für Android, oder habe ich einfach die falschen Plattformen gewählt?

+0

Im Allgemeinen wird eine mobile App nicht direkt mit einer Datenbank interagieren. Stattdessen wird Ihre Anwendung mit einer Anwendung kommunizieren, die irgendwo auf einem Server oder Server gehostet wird. Diese Anwendung wird dann mit einer Datenbank sprechen. Sie können direkt mit Diensten wie Firebase arbeiten, aber damit haben Sie nur begrenzte Kontrolle darüber, welche Daten in die Datenbank gelangen. – datasage

+0

Geht es Ihnen gut, wenn der Benutzer einen Benutzernamen und ein Passwort benötigt? – nasch

Antwort

1

Die beste Lösung sein wird, wenn Sie einen API-Backend für Ihre App, die wiederum im Gespräch mit Ihrem App-Server und die Datenbank erstellen. Dies ist die Standardmethode zum Erstellen von mobilen Anwendungen mit Cloud-Back-End

AWS API Gateway wäre eine perfekte Lösung dafür. Dies ist sehr billig, reaktionsschnell und ein sicherer Service.

0

Sie könnten APIs erstellt mit PHP Sie können den folgenden Mechanismus mit der PHP entwickeln Ihre APIs zu sichern:

  1. Liste aus der API, die wie Login, die Registrierung öffentlich sein sollte, so kann jeder darauf zugreifen.
  2. Alle anderen APP sollte nur nach einer gewissen Authentifizierung zugänglich sein.
  3. Ihre APIs sollten mit Ihrem Datenbankserver kommunizieren, der sich in einem privaten Subnetz befindet.

Weitere Optionen:

  1. Verwenden API-Gateway mit Lambda und den Datenbankserver:
  2. Um die Verwendung von API-Gateway reduzieren können Sie direkt einen Code in Lambda schreiben und aws-sdk verwenden in Ihrer Anwendung, um Lambda zu nennen. Verwenden Sie im Backend Ihren Datenbankserver.
Verwandte Themen