Verschlüsselter Zugriff auf Webdatenbank via Web Service

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Verschlüsselter Zugriff auf Webdatenbank via Web Service

Beitragvon burli » Samstag 2. August 2008, 19:10

Hi,
ich hab folgendes Problem: ich programmiere gerade an einem Webshop. Zur Verwaltung der Daten würde ich ganz gerne auf die Datenbank zugreifen können. Derzeit geht das nur direkt auf den MySQL Server ohne Verschlüsselung. Ich suche jetzt nach einer Lösung wie ich das sicherer machen kann.

Ein Zugriff auf MySQL über SSL ist bei dem Provider nicht möglich obwohl ich über einen SSL Proxy verfüge. Eigene Dienste kann ich nicht installieren weil es ein Shared Server ist und der Provider da nicht mitspielt.

Ich möchte mit einen Vserver mieten und dort selbst administrieren. Auf dem Server hab ich aber kein SSL bzw ich müsste mit ein Zertifikat selber malen.

Jetzt meine Frage(n): kann ich in Python einen verschlüsselten Webservice ohne SSL programmieren? Wenn ja, was brauche ich dazu?
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 2. August 2008, 20:07

Warum greifst du nicht von der Webapp auf den MySQL-Server direkt via localhost zu? Dann verläuft die Verbindung nie über unsichere Netze und solange niemand in deinen Server einbricht ist das die sicherste Möglichkeit.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Beitragvon burli » Samstag 2. August 2008, 20:18

Hi,
ich glaub du hast mich missverstanden. Ich will nicht von dem Webservice zum MySQL Server verschlüsseln sondern von meinem PC hier zum Webservice. Also sowas wie SOAP. Problem ist das ich nicht SSL nutzen kann. Oder kann ich auf dem Vserver einfach eine SSL Erweiterung zum Apache installieren?
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 2. August 2008, 21:16

burli hat geschrieben:Oder kann ich auf dem Vserver einfach eine SSL Erweiterung zum Apache installieren?

Sicher, ``mod_ssl`` existiert.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Beitragvon burli » Sonntag 3. August 2008, 11:14

Ich will es mal anders ausdrücken: ich brauche eine verschlüsselte Verbindung zwischen der MySQL Datenbank auf dem Webserver und meinem PC zu Hause.

Ich dachte ein Webservice via SOAP über eine verschlüsselte Verbindung wäre eine machbare Lösung. Allerdings werde ich aus der ganzen Sache noch nicht so richtig schlau und ich weiß nicht was ich dafür alles benötige.

Oder gibt es eine andere Möglichkeit?
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Beitragvon audax » Sonntag 3. August 2008, 11:24

Wie wäre es mit einem SSH-Tunnel?
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 3. August 2008, 11:26

Ich habe ja keine Ahnung wozu man auf Datenbanken remote zugreifen will, wenn es vermeidbar ist aber mit SSH-Tunnel oder mit Stunnel ist das durchaus machbar.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Beitragvon audax » Sonntag 3. August 2008, 11:39

er möchte keinen lokalen Testserver laufen lassen...warum auch immer.
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Beitragvon burli » Sonntag 3. August 2008, 11:41

Das ganze soll wie gesagt ein Online Shop werden. Und ich möchte die Bestelldaten direkt aus dem Shop in meine Anwendung übernehmen können und die Artikeldaten direkt aus der Anwendung aktualisieren.

Irgendwelche Imports/Exports via Text Dateien ist einfach zu müßig
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 3. August 2008, 11:54

Ok, das Stichwort war dass du neben dem Webshop auch einen Client haben willst, was das ganze Vorgehen etwas ändert. Jetzt ist die Frage: wer nutzt den Client? Leute denen du traust, dass sie nicht irgendwelche ``DROP``-Statements an die Datenbank schicken, oder beliebige Leute. Im ersteren Fall ist es sinnvoll eine data-manipulation-Lib zu haben, die du sowohl online als auch lokal nutzen kannst um das entsprechende SQL zu generieren. Im zweiten fall würdest du eine data-manipulation-API machen (via XML-RPC oder JSON-RPC oder whatever) und die hinter SSL absichern.

Wobei der zweitere Fall etwas universeller ist aber auch mehr Arbeit erfordert.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Beitragvon audax » Sonntag 3. August 2008, 12:04

ach so war das gemeint! Dann bin ich ja beruhigt :D
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Beitragvon burli » Sonntag 3. August 2008, 12:15

Also das ganze soll ein komplettes Warenwirtschaftssystem werden mit Kundenverwaltung, Artikelverwaltung usw und eben dem Onlineshop. Die User, egal ob vertrauenswürdig oder nicht, können keine SQL Befehle absetzen sondern nur das nutzen können was die Software freigibt.

Statt XML-RPC würde ich aber SOAP verwenden. Soweit ich weiß ist SOAP eine Weiterentwicklung von XML-RPC und W3C standartisiert. Oder gibt es Gründe für XML-RPC und gegen SOAP?

Ich denke eine unverschlüsselte Verbindung, egal ob XML-RPC oder SOAP, kriege ich auf die Reihe. Aber was brauch ich für SSL auf dem Server und beim Client?
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 3. August 2008, 12:20

burli hat geschrieben:Statt XML-RPC würde ich aber SOAP verwenden. Soweit ich weiß ist SOAP eine Weiterentwicklung von XML-RPC und W3C standartisiert. Oder gibt es Gründe für XML-RPC und gegen SOAP?

Überspezifiziert, überkompliziert, überhyped, schlechter Python-Support, keine richtigen Vorteile gegenüber XML-RPC.

burli hat geschrieben:Aber was brauch ich für SSL auf dem Server und beim Client?

Wenn es über Apache läuft, dann außer einer IP und mod_ssl nichts, auf dem Client brauchst du ein Python mit ``socket.ssl()``. Ich muss zugeben, dass ich aber bisher kein RPC über SSL gemacht habe.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Beitragvon burli » Sonntag 3. August 2008, 12:32

Hm, ok danke, dann werde ich mal versuchen das erstmal lokal zu installieren. Wenn das läuft kann man weiter sehen
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Beitragvon burli » Mittwoch 6. August 2008, 16:02

Ich hatte gerade eine Idee für eine andere Lösung. Man kann die Daten ja einfach im XML Format über das normale HTTP Protokoll übertragen. Also man ruft zb eine Seite auf und bekommt statt einer Webseite XML Daten. Und Hochladen kann man über POST.

Damit könnte man sich den Webservice und den damit verbundenen Aufwand sparen. Das müsste doch funktionieren, oder?

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder