Anzeige

Remote Access zur Datenbank oder einen eigenen Service?

Halfbax

Erfahrenes Mitglied
#1
Guten Tag,

ich frage mich gerade wie ich realtiv sicher auf eine Datenbank zugreife. Nun habe ich folgenden Thread auf Stackoverflow gelesen und bin erstaunt und gleichermaßen sehr überrascht.

http://stackoverflow.com/questions/9343385/safely-connect-to-mysql-database-in-c-sharp

Ich bin mir halt nicht mehr sicher, ob ich eine sichere Verbindung herrstellen kann, ohne das ich einen eigenen Service auf meinem Server implementiere. Muss ich das Rad neu erfinden? Wenn ja, was muss ich beachten bzw. wie sollte die Struktur aussehen?

Mit freundlichen Grüßen
Halfbax
 
#3
Unabhängig von dem Verteilungsproblem der DB-Zugangsdaten:

Zwischen den Möglichkeiten "ein paar HTTP-Abfragen erlauben, die anhand der Parameter irgendwas aus der DB abfragen und zB. JSON-Daten zurückleifern" und "Socketverbindungen direkt in die DB erlauben" liegen Welten.
...

Außer der Sicherheit gibt es noch eine Menge anderer Gründe für Abstraktion.
Was sollen denn die ganzen schon verteilten Clients tun, wenn sich zB. die DB-Struktur leicht ändert?
 

Halfbax

Erfahrenes Mitglied
#4
Eine REST-API hört sich interessant an und sollte nicht zu großen Problemen in der Implementierung führen :). Aber ich frage mich demnach wie sicher sind dann die Nutzerdaten? Ich benötige eine Schnittstelle zum übertragen von Login-Credentials, sprich Login-Daten, und für das Setzen/Abfragen von Daten. Ich bin nicht zu 100% mit diesem System vertraut, aber ich glaube setzen von Daten ist nicht möglich. Bitte korrigiere mich, sofern ich falsch liege.

Folgendes Schema würde mir gefallen, sofern das auf dem richtigen Weg ist.

Login
Code:
Nutzer loggt sich ein -> Anfrage wird von einem Webserver ausgewertet und falls der Login erfolgreich ist wird ein Session-OAuth2-Key generiert
Abfrage
Code:
REST-API
Setzen
Code:
POST-Formular mit OAuth2 Implementierung
Mit freundlichen Grüßen
Leon
 

Bratkartoffel

gebratene Kartoffel
Premium-User
#5
Hi,

ja, so kann man das machen. OAuth2 ist mMn zwar State-of-the-art, aber man muss fairerweise auch sagen, das OAuth2 schon ein ziemlicher Hammer ist (Verständnis, Implementierung, etc.). Für deinen Fall sicherlich wie Kannonen auf Spatzen.

In deinem Falle würde es sicherlich auch reichen, wenn du auf die Login-Anfrage einfach nur einen Cookie (SessionID) zurückgibst, welcher dann analog einer "normalen" PHP-Seite auch bei jeder Anfrage mitgeschickt wird.

Grüsse,
BK
 

zerix

Hausmeister
Moderator
#6
Hallo,

ich hätte noch so ein paar Punkte zur Sicherheit. Zugriffe auf die REST API sollten per HTTPS passieren und nicht nur per HTTP. Die Client Anwendung sollte nicht jedes Zertifikat (keine self-signed) erlauben, sondern wenn möglich sogar testen, ob es sich um das richtige Zertifikat handelt, hier das Stichwort Certificate Pinning. So wird sichergestellt, dass niemand Man in the Middle spielen kann.

Viele Grüße
Sascha
 

Halfbax

Erfahrenes Mitglied
#7
Danke für die Antworten und entschuldigt mein spätes Antworten! Ich bin vor ein paar Tagen aus dem Urlaub zurück gekommen und wollte mich nun daran setzen. Ich sehe gerade eine REST API mit O2Auth Support ist anscheinend auf den ersten Blick nicht gerade einfach einzurichten. Obwohl es bereits fertige Scripts diesbezüglich gibt. Irre ich mich da?

Mit freundlichen Grüßen
Leon
 
Anzeige
Anzeige