Re: Windows Anwendungmit einer Web mySQL als Backend?
- From: Sim <Sim@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Fri, 15 Dec 2006 07:24:01 -0800
Vielen Dank Holger
Genau in der Richtung sollte es gehen. Nun ich hätte noch schreiben sollen,
dass sich die ganze Kommunikation zwischen einer Client .NET (2.0) Anwendung
und einer PHP Seite abspielen würde. Die übliche (günstigere) Webprovider
bieten meistens nur Service (Serverscript und Datenbank) auf der Linuxbasis
und das sind dann eben PHP und mySQL.
Wenn ich also auf der Serverseite PHP verwende, dann muss die Seite so
programmiert werden, dass sie Parameter entwender über URL oder POST erhält.
Über POST kann ich die nicht senden, weil ich die Controls in meiner
Applikation gar nicht zur Gesicht bekomme und wenn das so wäre, kann ich
schwer ein Formular ausfüllen und absenden innerhalb meiner Applikation. Also
werde ich Anfragen an mySQL sehr wahrscheinlich über URL an meine PHP Seite
senden müssen. Ich könnte die Parameter aber sicher verschlüsseln, denke ich.
Bei der Antwort der PHP Seite kann ich dann so eine Art XML Datei mit Daten
seitens PHP generieren (es wäre eigentlich eine HTML Datei, die einen XML
Code anzeigt).
Ich bin schon etwas genervt, dass es absolut keine Kommunikationsmöglichkeit
zwischen Clients im Web gibt, die einfach realisiert werden kann. Fast alle
Technologien basieren entwender an bestimmten Ports (die in meisten Fällen
geschlossen sind) oder man braucht zusätzliche Apllikationen auf der
Serverseite (was bei heutigen Provider gar nicht akzeptiert wird).
Gruss und Danke.
"Holger Boskugel" wrote:
Hallo Simon,.
Vielen Dank für die Bestätigung, aber genau das ist mein Problem. Ich kannin
so einem Fall meine Variablen nur über Header senden bzw. über den Link,den
ich in meiner Applikation aufrufen würde und das würde einSicherheitsrisiko
darstellen. Besonderes wenn ich dadurch beliebige SQL Abfragen (auchINSERT
oder DELETE) zusenden würde!
KAnn der Anwender überhaupt sehen was ich im Code für eine dynamischeSeite
aufrufe? Falls er Firewall hat, wird sich der schon melden, aber wird dort
die ganze URL angezeigt inklusive alle Variablen die in der URL
zusammengefügt wurden?
Verschlüsseln des Links geht, denke ich, nicht, oder?nützen
Gibt es sonst welche Möglichkeiten die Standard Provider Angebote zu
und dabei eine Applikation entwickeln die auf dem Client keine spezielle
Anforderungen stellt (wie etwa spezifische Ports frei schalten o.ä.)?
Der Anwender sieht normalerweise nur die URL, denn das XML der Query
wird ja per POST übermittelt nicht per GET ! Einzig mit einem TCPIP-
Sniffer sollte er dann den Inhalt sehen. Du könntest aber z.B. in den HTTP-
Header drei Variablen schreiben, wie :
X-SQL-Call-ID : <hier einen GUID-String>
X-SQL-Reference : <hier den MD5/SHA1 Hash der GUID>
X-SQL-ID : <hier den MD5/SHA1 Hash des SQL-Befehls verknüpft mit der GUID
des Calls>
So könntest du Prüfen ob die Anforderung in sich stimmig ist. Sprich
Du vergleichst die Daten die Du bekommst wieder mit den Hashes.
Die Call-ID ließe sich auch mit ins XML verpacken :
<query id="<hier einen GUID-String>">
<sql>select * from MyTable</sql>
</query>
Die Schritte wären dann :
a) Extrakt der GUID aus dem XML
b) Extract des SQL aus dem XML
c) Extract des X-SQL-Reference-Headers
d) Extract des X-SQL-ID-Headers
e) Vergleich des MD5/SHA1 aus der GUID (a) mit dem Reference-Header (c)
f) Vergleich des MD5/SHA1 aus SQL + GUID mit dem ID-Header (d)
Wenn beide Vergleiche stimme dann Ergebnis zurückgeben ansonsten :
a) einen Fehler oder
b) einen Bad Request (HTTP 400?)
Gruß
Holger
PS : Hier mal noch der Client Request vielleicht zum besseren Verständnis :
POST /db/query HTTP/1.0
Host: myhost.de
User-Agent: MyAgent
X-SQL-Call-ID : abcdef0123456789abcdef0123456789
X-SQL-Reference : 0123456789abcdef0123456789abcdef01234567
X-SQL-ID : abcdef0123456789abcdef0123456789abcdef01
<query id="abcdef0123456789abcdef0123456789">
<sql>select * from MyTable</sql>
</query>
oder in der kürzeren Form :
POST /db/query HTTP/1.0
Host: myhost.de
User-Agent: MyAgent
X-SQL-Reference : 0123456789abcdef0123456789abcdef01234567
X-SQL-ID : abcdef0123456789abcdef0123456789abcdef01
<query id="abcdef0123456789abcdef0123456789">
<sql>select * from MyTable</sql>
</query>
"Holger Boskugel" wrote:einbauen.
Hallo Simon,
Ich würde gerne in meinen Anwendungen auch einen Webinterface
allenDie
Möglichkeiten sind gross, weil man hätte eine Zentralle stelle, die
mySQLgestarteten Applikationen gemeinsam wäre (in meinem Fall z.B. die
SchonDatenbank auf dem Web).
Nun je mehr ich darüber nachdenke, desto mehr Probleme tauchen auf.
zubeim Versuch die einfache Verbindung zu einer Web mySQL Datenbankaufzubauen,
scheitert aus! Das Problem sind die Ports, die bei den meisten Firmen
Anwendungsind
(und vermehrt auch bei Privatanwender). Und ich will nicht eine
(dasschreiben, die dann eine lange Anleitung für die Portsfreischaltungbraucht!
Anwendungen
Weiss jemand wie man am einfachsten die Gemeinsame Basis für die
schaffen kann, ohne dabei spezielle Ports verwenden zu müssen, so dasalles
eigentlich über 8080 geht, weil 8080 immer frei wäre?
Ich habe mir überlegt eine Art Seitenaufrufs im Code zu realisieren
SQLhab
ich schon öfters gemacht). Die Seite wäre eine PHP Seite, die mir dann
entsprechende Informationen (z.B. XML Datei) dynamisch auf dem Server
generieren würde. Das Problem ist aber, dass ich alle Parameter (z.B.
nichtAbfragen) an den Seitenaufruf anhängen müsste! Das gefällt mir aber
manso
:(Soweit
Wie ist es eigentlich mit Directory Services, brauchen die auch 8080?
es mir noch in Erinnerung geblieben ist, ist dort das Problem, dass
einemauf
der Serverseite spezielle Dienste einrichten muss, was natürlich bei
ichProffessionelen Provider nicht gemacht wird und eigenen Server will
PHP/ASP/JSPnicht
aussetzen.
Für alle Vorschläge, vielen Dank im Voraus.
Im Prinzip hast Du Dir ja schon selbst geantwortet, in dem Du
benutzenauf der Server-Seite nutzt und damit auch einen normalen 80er Port
könntest. Das SQL ließe sich in eine POST-Anforderung verpacken die z.B.
im HTTP-Header entweder nur über den "Content-Type" = "text/xml" identi-
fiziert wird oder über eine/mehrer eigene Header-Variablen.
Gruß
Holger
- Follow-Ups:
- Re: Windows Anwendungmit einer Web mySQL als Backend?
- From: Holger Boskugel
- Re: Windows Anwendungmit einer Web mySQL als Backend?
- References:
- Re: Windows Anwendungmit einer Web mySQL als Backend?
- From: Holger Boskugel
- Re: Windows Anwendungmit einer Web mySQL als Backend?
- From: Sim
- Re: Windows Anwendungmit einer Web mySQL als Backend?
- From: Holger Boskugel
- Re: Windows Anwendungmit einer Web mySQL als Backend?
- Prev by Date: Re: <Include> Datei als <Summary>
- Next by Date: Re: <Include> Datei als <Summary>
- Previous by thread: Re: Windows Anwendungmit einer Web mySQL als Backend?
- Next by thread: Re: Windows Anwendungmit einer Web mySQL als Backend?
- Index(es):
Relevant Pages
|