Sichere Verbindung von 50 Clients auf virt. Windows Server

sunshiner

New Member
Hallo,

Ich würde mich sehr über hilfreiche Antworten von euch freuen. Nicht alle Fragen haben direkt mit dem Server zu tun, aber ich denke mal hier kennt man sich vmtl. auch damit aus.

Ich möchte mit ca. 30 bis evtl. mal 100 Client PCs per z.B. libmySQL.dll (ist in meine Client- Anwendung eingebaut) auf einem "Virtual Windows Server / Windows Web Server 2008" bzw. auf eine dort installierte mySQL ggf. auch FireBird Datenbank zugreifen.

1.
Wie erreiche ich einen sicheren Zugriff auf diese Datenbank? Der SQL Port am Server muss ja für RemoteZugriff (also Zugriff aus dem Internet) geöffnet werden, was ja ein offenes Tor für Hacker etc. wäre.!???

2.
Falls dies mit OpenVPN möglich ist, frage ich mich, ob sich darüber 100 Clients zeitgleich mit dem Server verbinden können um je ca. 10x10 Zellen mit Float-Werten(z.B. 123.456) auszulesen (readOnly), dies mind. 2x pro Minute?
...allerdings konnte ich von OpenVPN keine Server Version finden!? nur von Putty!

3.
Ich habe mal gehört, dass es freeware VPN Lösungen gibt, bei welchen es sogar möglich sein soll den Zugriff (falls einer der Clients z.B. das PW etc. weitergeben würde) zu beschränken. Entweder in der Form, dass man nur z.B. 25 Clients zulässt, oder in der Form, dass die VPN Software am Server nur Clients mit eingestellter HardwareMACAdresse die Verbindung erlaubt!???

4.
Gibt es ne Möglichkeit Daten in die DB einzugeben z.B. über ein kleines Freeware Tool für Windows, mit dem man sich dann von irgendeinem PC aus auf die Server DB einloggen kann und die Zellen sieht, als wärs ein Excel File um die Daten so z.B. zu verändern?
4.1.
Wie ist das, wenn da z.b. 50Client PCs gerade die DB auslesen und zeitgleich einer über das Tool einige Zahlenwerte verändert? Sagen wir er schreibt gerade 123.4 und jetzt lesen Clients den Wert aus, obwohl er ja noch nicht fertig ist und eigentlich schreiben möchte 123.456!?? Oder wird der neue Wert erst übernommen sobald man ENTER drückt?


Über eure Hilfe würde ich mich sehr freuen!
 
Für eine VPN-Verbindung kannst du OpenVPN nehmen. Dort gibt es keine separate Server-Version, die Unterscheidung, ob Client oder Server, erfolgt in der Config-Datei.
Ob dein Server mit der Anzahl User klar kommt, ist schwer zu sagen. Du machst weder eine Aussage zur Leistung deines Servers (CPU, RAM) noch, noch, welche Datenbank-Engine du unter MySQL einsetzt.
Tools, um die Datenbank zu pflegen, gibt es auf der MySQL-Seite.
Sofern dein Programm selber auch Änderungen vornimmt, weißt nur du selbst, was gleichzeitig geändert wird. Ein einzelnes SQL-Statement wird komplett übernommen, bevor die geänderten Zeilen an die Clients ausgeliefert werden. Sofern aber mehrere SQL-Statements notwendig sind, mußt du mit Transaktionen arbeiten, diese sind aber nicht mit jeder Engine unter MySQL möglich.
 
Zu 1.
Clients den direkten Zugriff auf eine DB zu erlauben, halte ich in puncto Sicherheit für einen schwerwiegenden Designfehler. Wie du bereits anfängst festzustellen, geht das mit einigen Komplikationen einher. Die Kommunikation mit der DB sollte ausschließlich über eine entsprechend definierte Schnittstelle erfolgen.

Damit hast du auch freie Hand bzgl. der Implementierung des Übertragungsprotokolls bzw. kannst auf Standards setzen wie SSL etc. pp. Der Client sollte von sich heraus eine sichere Verbindung aufbauen. Auch hast Du dann alle Möglichkeiten, Dir die Daten so formatiert zurückliefern zu lassen, wie Du es gern hättest.

Der Einsatz einer VPN-Lösung neben dem eigentlichen Client verkompliziert das gesamte Konstrukt zusätzlich. Ich empfehle Dir wirklich nochmal das Konzept Deiner Anwendung zu überdenken.

Zu 2. und 3.
OpenVPN (i.d.R. Auth per Zertifikat) wäre ein mögliche Lösung - entspricht hier aber nicht dem typischen Einsatzszenario. Einwahl per PPTP (i.d.R. Auth per User/PW) wäre eine andere Option - gilt aber das gleiche wie bei OpenVPN.

Generell zeigen die beiden Fragen von Dir erhebliche Wissens-Defizite in diesem Bereich auf. MAC-Adressen als Ident-Merkmal ist Snake-Oil weil beliebig fälschbar.

Du solltest besser den Ansatz zu 1. verfolgen.

Zu 4. Anbindung per ODBC-Schnittstelle z.B. mit MS Access oder Base von Libreoffice

Zu 4.1. Üblichweise werden die Daten erst verarbeitet, wenn Du <Enter> gedrückt hast, alles andere wäre z.T. fatal.
 
...danke für die Antworten, genau deshalb frage ich hier nach, weil ich kein Profi bin, ich soll das ganze nur gemeinnützig umsetzen. Deshalb wollte ich das ganze mit Freeware machen. Ich ging eigentlich davon aus, dass es in heutiger Zeit doch kein Problem sein dürfte.

Grundsätzlich geht es ja nur darum, dass ca. 50 Client Rechner (ganz normale Private PCs) eine Software laufen haben, welche ca. 2x pro Minute ca. 10x10 floatWerte/Timestamp/text/Bool auslesen sollen (readOnly). Wie ich das umsetze hat man mir überlassen, allerdings sollte der Server schon seine Arbeit weiter verrichten können und nicht von einem Hacker stillgelegt werden. Insofern sollte es also auch sicher sein!

Aktuell hab ich mir bei db4free.net eine kostenlose MySQL Datenbank mit Remotezugriff eingerichtet (die aber sehr sehr langsam ist und meist kann nicht mal zugegriffen werden) . Zudem ist angeblich der Zugriff über die "libmySQL.dll" ja unsicher, da BN und PW unverschlüsselt übertragen werden. Aber ich habe die libmySQL bereits erfolgreich in die Clientanwendung integriert und kann daraus bereits meine WERTE abfragen. Also funktionieren tut das ganze schon mal.

Dennoch bin ich OFFEN für JEDE einfache LÖSUNG! Es sollte halt kostenlos bleiben. Da ich mit der kostenlosen Datenbank Probleme hatte, haben wir als max. Ausgabe nun einen "virtuellen Windows Web Server 2008" bei Strato aufgemacht. Ich bin aber garnicht sicher ob wir diesen Aufwand mit dem Server brauchen, da die Lösung bei db4free.net eigentlich super gewesen wäre (wenn es nicht so unzuverlässig und langsam wär).

Wir wollen ja wirklich nur über die Clients Werte abfragen, und ja nur 100Stück und dies wenn mögl. minütlich auf Änderungen prüfen. Nur lesend! Eigentlich bräuchte man dafür ja noch nicht mal ne "Datenbank"!?

...ich bin nun wirklich leicht verwirrt und seh vor lauter Wald die Bäume nicht! Was/Wie mach ich das nun am besten?
 
Darf ich frage, welche Kenntnisse Du im Bereich Softwaretechnik/-entwicklung hast? Das macht es einfacher, die Antworten zielgenauer zu formulieren.

Nun zu Deiner Anwendung:

In meinen Augen hast du Dich mit Deinem Lösungsansatz verrannt. Natürlich mag es grundlegend funktionieren und „einfach“ zu implementieren gewesen sein. Aber Du hast dir damit ein paar Nachteile eingekauft, an denen Du nun versuchst herumzudoktorn. Der Versuch Deinen Clients noch ein VPN aufzupropfen, ist einer davon.

Sicherheit: es sollte unbedingt vermieden werden, dass Clients, die nicht unter unserer Kontrolle stehen, SQL-Anfragen direkt an den Server senden können. Außerdem wollen wir die Zugangsdaten zum Server nicht unbedingt in alle Welt verteilen.

Flexibilität: Damit tut sich auch ein 2. Problem auf, nämlich wir sind auf einen mySQL-Server angewiesen und können diesen nicht bei Bedarf z.B. Postgres oder bei kleinen DBs SQLite wechseln. Genaugenommen sollte der Client im Idealfall gar nicht wissen müssen, dass er mit einem DB-Server kommuniziert.

Performance: Jeder der Clients muss eine Verbindung zum DB-Server aufbauen, sich authen, die SQL-Abfrage abfeuern, das Ergebnis entgegennehmen und die Verbindung wieder abbauen. Die Frage ist hier natürlich, müssen wir immer den DB-Server direkt bemühen oder wäre es nicht cleverer ein Caching einzubauen?

Die Lösung: Wir setzen zwischen Client und Server eine Schnittstelle. Das kann z.B. ein kleines PHP-Script sein, welches als Ergebnis ein XML-Dokument zurückliefert, welches der Client auswerten kann. Sprich nur das Script kommuniziert mit dem DB-Server. Der Client schickt per http eine Anfrage an das Script ggf. kannst Du auch noch Auth-Funktionen mit einbauen, falls das erforderlich ist (z.B.: http://meinedomain.de/abfrage.php?art=abfrage1&clienttoken=0815). Unser Script prüft die Parameter, führt die entsprechende SQL-Abfrage aus und liefert das Ergebnis als XML zurück.

Eine weitere Optimierung wäre, auch die Schreibzugriffe (Updates) über die Schnittstelle durchführen zu lassen. Dann könnte das Script 1. die Werte in der DB ändern und 2. dann bereits im Vorgriff für z.B. Abfrage1 ausführen und das Ergebnis als Datei lokal ablegen bzw. das alte Ergebnis überschreiben. Im weiteren erhalten dann also die Clients, die bereits vorberechnete Ausgabe, was den Server deutlich entlastet.

Ist die Datenmenge sehr klein und werden keine weiteren Selektions-Funktionen benötigt, ist sogar fraglich, ob überhaupt eine DB notwendig ist. Denn dann könnten die Daten auch direkt strukturiert auf einem zentralen Server abgelegt werden und die Clients rufen dann immer die aktuellste Version ab.

Fazit: ein normales Webhosting Paket dürfte ausreichen – ein VServer wäre nicht unbedingt erforderlich, zumal der egal ob Linux oder Windows als OS entsprechendes Know-how für Administration voraussetzt und zusätzliche Wartungsaufwand verursacht.
 
...vielen Dank für die Mühe und die Zeit bei den Antworten!

...wie man sieht, habe ich tatsächlich keine Ahnung von der ganzen Materie. Für mich geht es lediglich darum:

-Die ca. 50 Clients haben lesenden Zugriff auf eine MySQL oder Firebird Datenbank (ggf. auch ein einfaches .csv File)
-Die Auswertung der Daten mache ich im Programm, welches auf den Client PCs (private, meist Windows PCs) läuft. Dieses kommuniziert derzeit über die "libmySQL.dll".

Das mit dem Script und PHP und etc. kann ich glaub ich nicht alleine umsetzen und das ist halt dann wieder das Problem.

Ich such halt ne möglichst einfach Lösung die auch für mich als Laie einfach umsetzbar ist.

Möglichkeit 1)
-Zugriff und auslesen der MySQL Datenbank (mit Remotzugriff Freischaltung), funktioniert, ist aber unsicher, da jeder andere Client auch zugreifen könnt. Zudem ist diese DB sehr sehr langsam oder oft auch nicht erreichbar!
...ansonsten wärs ne schöne Möglichkeit, wenn man dies noch optimieren könnte. Und man spart sich die Kosten für nen virtuellen Server.

Möglichkeit 2)
-Ich habe mir bei Strato einen virtuellen Windows Web Server 2008 einrichten lassen. Dort könnte ich nun FireBird installieren (ich hoffe das bekommt man hin) und nun könnte ich die Clients über VPN zugreifen lassen.
...nur WELCHE VPN Freeware kann ich dafür nutzen (die evtl. sogar Einstellungen erlaubt, wieviel oder welche Clients zugreifen können)?
...und funktionieren 50Verbindungen gleichzeitig? etc.
...und wie muss ich den Server einstellen, dass nur noch lesender Zugriff der Clients möglich ist und keine anderen Computer drauf kommen?

DIESE beiden Lösungen kann ich selbst einigermaßen umsetzen.
FÜR alles andere bräuchte ich ne genaue Anleitung

...würde mich sehr freuen wenn man mal kurz tel. darüber sprechen könnte. Ich würde meine Nummer dann per PM senden, oder auch gerne zurückrufen wenn ich eine Nummer per PM erhalte.
 
Schade um die schönen Antworten von TerraX, da Du da schlicht nicht darauf eingehst, obwohl sie absolut richtig sind.

Ein weiterer Hinweis: eine Datenbank "4 free" irgendwo zu lagern ist durchaus auch ein Sicherheitsproblem, denn wenn das kein vernünftiger Anbieter ist, kann damit alles mögliche an Schindluder getrieben werden.

Zu VPN: Unter Windows wäre PPTP eine Möglichkeit. Diese Anleitung ist zwar für Vista, so viel Unterschied dürfte da aber auch nicht sein. Vermutlich findet man auch entsprechendes für Server 2008.

Allerdings ist es für so viele Clients ein nicht zu unterschätzender Aufwand, wenn 50 User eine VPN Verbindung lokal konfigurieren müssen. Mit der Lösung von TerraX wäre der ganze Terz nicht nötig. Vielmehr würde eine SSL Verbindung zwischen Client und Skript ausreichen.

Du solltest Dich fragen: willst Du jetzt einmalig mehr Aufwand in die Implementierung stecken, oder dann monate/jahrelang Usersupport bei bis zu 50 Personen machen, nur weil Du jetzt den "leichten Weg" gehen willst?
 
...Das mit dem Script und PHP und etc. kann ich glaub ich nicht alleine umsetzen und das ist halt dann wieder das Problem.

Ich such halt ne möglichst einfach Lösung die auch für mich als Laie einfach umsetzbar ist...
Du kannst PHP auch gerne mit Java, Ruby, Perl, Python oder in C selbst verfasstes CGI ersetzen - was Dir halt lieber ist. Ist die Menge der Datensätze klein und begrenzt? Was spricht gegen einen direkte Bereitstellung einer CSV-Datei, die von den Clients via HTTP heruntergeladen und ausgewertet wird?

Du hast dich m.E. zu sehr in Deinen Ansatz verbissen. Dazu soll es schnell gehen und nix kosten. Also wird irgendwas, irgendwie zusammengepfriemelt.

Sorry, ich mag nicht böse sein aber vorgenannte Motive sind ganz ganz schlechte Ratgeber. Zeitgleich sehe ich, dass Dir für den ordnungsgemäßen Betrieb eines Server im Internet einiges an Kenntnissen fehlen. Vor diesem Hintergrund kann und will ich nicht einen Weg unterstützen, den ich für grundlegend falsch halte.

Daher kommt für Dich nur Webhosting in Frage entweder mit direkt programmierter Schnittstelle (siehe Script) oder eben als einfacher Dateiaustausch.

P.S.: Und nein ich führe auch keine persönlichen Beratungsgespräche per Telefon weil a) dann das Lösungsverfahren hier im Forum u.U. nicht mehr nachvollziehbar wird b) das keinesfalls ein kurzes Gespräch würde und c) ich in gewissen Maß Anonymität schätze.
 
...und d) wäre wenn dann (ZU RECHT) für ein solches Gespräch ein Honorar fällig.

Nebenbei: kosten darf es nix, aber für einen virtuellen Windows Server ist das Geld da? :confused:
 
...ihr habt natürlich recht! Ich würde auch lieber per WebspaceProvider und PHP/XML (wie von TerraX beschrieben) die Daten Verteilen.

Den virtuellen Server, hab ich nur gebucht weil ich dachte es geht damit ganz schnell und einfach per VPN. Ich wollte dort FireBird installieren und OpenVPN oder Putty, doch die beiden VPN Tools von Chip heruntergeladen, kann man anscheinend nur auf den Clients installieren. Für den virtuellen Windows Server 2008 hab ich kein VPN-Tool gefunden und auch nicht wie man das einstellt.

Auch dachte ich eigentlich dass man einfach nen WebSpaceProvider nimmt dort ne MySQL Datenbank anlegt und dann per sicherer Verbindung zur MySQL DAtenbank die Daten sicher auslesen kann - AUCH OHNE VPN. Das wäre doch aus meiner Sicht das einfachste. Ich dachte SSL ist SICHER?

Davon abgesehen klingt folgende Lösung plausibel:
Die Lösung: Wir setzen zwischen Client und Server eine Schnittstelle. Das kann z.B. ein kleines PHP-Script sein, welches als Ergebnis ein XML-Dokument zurückliefert, welches der Client auswerten kann. Sprich nur das Script kommuniziert mit dem DB-Server. Der Client schickt per http eine Anfrage an das Script ggf. kannst Du auch noch Auth-Funktionen mit einbauen, falls das erforderlich ist (z.B.: http://meinedomain.de/abfrage.php?ar...ienttoken=0815). Unser Script prüft die Parameter, führt die entsprechende SQL-Abfrage aus und liefert das Ergebnis als XML zurück.

@TerraX: Die Datenmenge ist sogar sehr klein, es handelt sich um 10Zeilen mit 10 Spalten die stehts aktuell interessant sind. Dabei ist die erst Spalte ne von MySQL automatisch erstellte Zeilennummer, dann ein TimeStamp(DatumUhrzeit), dann noch ein bool-Wert und ansonsten lauter floatwerte z.B. 123.456.
Jeden Wochentag kommen ca. 6 Neue Zeilen (manuell eingetragen) hinzu.

Die Clients fragen aber immer nur die letzten ca. 10Werte ab (nur lesend). Dies muss ca. 2 mal pro Minute passieren. Die Prüfung der Daten (z.B. auf Veränderung, da bestehende Datensätze in der DB auch geändert werden können, aber nur innerhalb der letzten 10Zeilen) erfolgt in der Anwendung auf dem Client. Schön wäre es wenn die Prüfung auf Veränderung (damit auch das lesen der DB) auch schneller erfolgen könnte, z.B. mehrmals pro Minute.
Ich vermute mal das ein herunterladen einer ganzen csv datei damit nicht geeignet ist.

Ich möchte nicht verbissen an der Idee festhalten, wenn ich die ganze Sache anders viel besser lösen kann! Und ich bin sicherlich niemand der Hilfe nicht zu schätzen weiß. Man kann sich ja auch per Amazon Wunschliste etc. bedanken. Da wird sich schon ein weg finden.

Es wird doch bereits Leute geben die den Lösungsweg von "TerraX" also mit PHP und XML schon umgesetzt haben. Wo finde ich eine entsprechende "Grundversion" im Internet? Dann schau ich mir das ganze mal an, so dass ich hier nicht die ganze Zeit an euch vorbeireden muss.

...herzlichen Dank für die vielen Antworten und gut gemeinten Ratschläge, is nur alles sehr verwirrend im Moment!!! Und entschuldigt bitte wenn das manchmal so dumm rüber kommt. Natürlich möchte ich auf alle Infos auch eingehen, anstatt stur an meiner Idee per VPN festzuhalten!
 
OK, ich skizziere hier mal den Weg auf, wie ich ihn verstanden habe (ich hoffe ich habe nichts durcheinander gebracht):

1.Aufsetzen meiner Datenbank mit MySQL
(In diese Datenbank kann ich dann von Hand Werte eintragen)

2.Erstellung eines PHP-Skriptes, dass die Werte der MySQL Datenbank ausliest.
-liegt direkt auf dem Server und hat nur Lesezugriff zur Datenbank (>> somit sicher)
-beim Aufruf des PHP-Skriptes werden die Clients authentifiziert (mit oAuth)
-der Aufruf des PHP-Skriptes erfolgt über eine https-Verbindung (SSL Protokol)
-muss nun das PHP-Skript ein XML-File erstellen und dieses an die Clients nach erfolgter Authentifizierung weitergeben, oder wie kann hier sicher der Datenaustausch erfolgen??

3.Erstellung meiner Clients -Applikation in C. Diese liegt auf verschiedenen Rechnern und hat jeweils eine individuelle Seriennummer zum Authentifizieren.

Ist das nun der professionelle und sicherste Weg??
Wie steht es nun um die Performance? Ist es besser wenn das php-Skript aufgerufen wird, statt die Datenbank?
 
...
-muss nun das PHP-Skript ein XML-File erstellen und dieses an die Clients nach erfolgter Authentifizierung weitergeben, oder wie kann hier sicher der Datenaustausch erfolgen??
Yepp. Ob Du unbedingt oAuth benötigst wäre in dem Falle noch die Frage, weil es eigentlich nur um die sichere Übertragung des Token zur Identifizierung des Clients geht. Dafür wäre IMHO SSL in Deinem Falle ausreichend. Aber soweit ich das bei PHP richtig sehe, ist das sowieso miteinander verbandelt, also insofern schadet es sicher nicht.

...Ist das nun der professionelle und sicherste Weg??
Wie steht es nun um die Performance? Ist es besser wenn das php-Skript aufgerufen wird, statt die Datenbank?
Die Variante ist erheblich besser und sicherer. Das Script selbst dürfte sehr klein sein und damit für die Performance nicht ins Gewicht fallen. Wenn Du die Änderungen ebenfalls über das Script einreichst, dann kannst Du problemlos einen guten Caching-Algorithmus einbauen, dass nicht mehr jedesmal die DB befragt werden muss, sondern nur noch ein bereits berechnetes XML ausgegeben wird. Aber das ist dann was für eine 2. Ausbaustufe.
 
Last edited by a moderator:
Ich brauche dann nur noch das XML-File, dass vom PHP-Skript erzeugt wird, mit meiner Anwendung am Client PC auslesen und auswerten.

Als Schnittstelle in die Client-Software hatte ich an die wininet.dll gedacht, aber dazu habe ich folgendes im Internet gefunden:
http://www.processlibrary.com/de/directory/files/wininet/25271/
(sie wird von Trojanern genutzt und soll nicht zugelassen werden)

Gibt es eine andere dll als Alternative um die Verbindung zur PHP-Datei herzustellen und um das XML-File der PHP-Datei auszulesen?

Kennt wer ein Tutorial oder ein Beispiel wo man sich das grundsätzlich mal anschauen kann (ein PHP-Skript, dass eine Datenbank ausliest und eine XML-Datei erstellt bzw. auch eine Anwendung die die XML-Datei verarbeitet)
 
Last edited by a moderator:
Danke für den Link!
Also der Teil ist soweit geschafft, ich kann die DB auslesen und mir XML-Code erzeugen.

Warum eigentlich XML? Hab ich da einen Vorteil, ich könnte doch die Werte als "String" auslesen und mit meiner Client-Applikation auswerten.

Kennt wer ein Beispiel, wie man mit einem C-Programm und der wininet.dll per SSL auf das php-Skript zugreifen kann??
Der normale http-Zugriff funktioniert, nur https bekomm ich noch nicht hin...
 
OK, ich skizziere hier mal den Weg auf, wie ich
Ist das nun der professionelle und sicherste Weg??
Wie steht es nun um die Performance? Ist es besser wenn das php-Skript aufgerufen wird, statt die Datenbank?

Die Performance ist auf diesem Weg natürlich grottenschlecht!
Sicher ist es nicht wirklich. Denn weder php noch mysql sind auf Windows native Produkte. D.h. sie sind vom Windowsupdate nicht erfasst.

Jede ungepachte Lücke in php und/oder mysql lässt sich auf diese Weise nutzen. Zudem noch die Lücken die du mit deiner Applikation zum Datenaustausch einbaust.

Ich würde aschaun, dass du unter Windows entweder mit dem MSSQL arbeitest, oder aber den mysql auf einem Linux betreibst, das über autoupdates sicher gehalten wird.

Den mysql Port dann noch über ssh tunneln, und gut ist es.
 
Die Performance ist auf diesem Weg natürlich grottenschlecht!

Du beziehst Dich auf einen Stand, der schon nicht mehr aktuell ist.

Sicher ist es nicht wirklich. Denn weder php noch mysql sind auf Windows native Produkte. D.h. sie sind vom Windowsupdate nicht erfasst.

Was für ein Quatsch. "Nativ" sind PHP und MySQL insofern auf Windows, dass es offizielle Versionen dafür gibt. Und quasi jedes andere Serverprogramm das auf Windows läuft, wird auch nicht vom Windowsupdate erfasst und muss manuell auf dem aktuellsten Stand gehalten werden.

Jede ungepachte Lücke in php und/oder mysql lässt sich auf diese Weise nutzen. Zudem noch die Lücken die du mit deiner Applikation zum Datenaustausch einbaust.

Es geht mittlerweile um eine XML Lösung. Die Datenbank muss und DARF dafür nicht von außen erreichbar sein, die Firewall steht da dazwischen, davon abgesehen hat wie gesagt der Admin für die Aktualisierung zu sorgen.

Ich würde aschaun, dass du unter Windows entweder mit dem MSSQL arbeitest, oder aber den mysql auf einem Linux betreibst, das über autoupdates sicher gehalten wird.

Beides Quatsch. Denn MITNICHTEN muss man MSSQL (vielleicht sogar noch kostenpflichtig) auf Windowsbasis verwenden, noch ist MySQL auf Windows so zu verdammen wie Du das tust.

Und wer auf Linux "Autoupdates" (also womöglich Updates ohne manuelles "apt-get update / upgrade") aktiviert, fährt auch gefährlich und ist keinesfalls ein guter Linuxadmin.

Den mysql Port dann noch über ssh tunneln, und gut ist es.

Alter Stand! Das ist NICHT NÖTIG und auch nicht sinnvoll. Hast Du den Thread überhaupt gelesen?
 
Die Performance ist auf diesem Weg natürlich grottenschlecht!
Sicher ist es nicht wirklich. Denn weder php noch mysql sind auf Windows native Produkte. D.h. sie sind vom Windowsupdate nicht erfasst.

Jede ungepachte Lücke in php und/oder mysql lässt sich auf diese Weise nutzen. Zudem noch die Lücken die du mit deiner Applikation zum Datenaustausch einbaust.

Ich würde aschaun, dass du unter Windows entweder mit dem MSSQL arbeitest, oder aber den mysql auf einem Linux betreibst, das über autoupdates sicher gehalten wird.

Den mysql Port dann noch über ssh tunneln, und gut ist es.
Himmel, die Argumentation macht wirklich Angst und zeigt, dass das Design der von mir vorgeschlagenen Lösung und vor allem dessen Begründung nicht verstanden wurde.

Das zeigt schon, dass auf mySQL bzw. MSSQL herumgeritten wird. Warum nehmen wir nicht SQLite oder einen NoSQL-Ableger z.B. HBase? Die Fähigkeiten einer ausgebauten relationalen DB werden ja hier nicht wirklich benötigt.

Durch die Einführung der Schnittstelle haben wir gerade die Wahlfreiheit bzgl. der tatsächlichen Implementierung der jeweiligen Seite (Server, Clients). Falls sauber umgesetzt, ist die Version auch deutlich sicherer, weil Clients eben nicht mehr x-beliebige Abfragen mit x-beliebigen Parametern durchführen können, da durch die Schnittstelle Aktionen und Reaktionen fest definiert sind und Parameter überprüft werden sollten. Bei direkten Zugang zur DB findet das nicht statt - ein Paradies für kompromittierte Clients und Zugänge. Außerdem sollten wir auch die unzähligen Bots davon abhalten, unser DBMS zu belästigen - was mit einer Bindung auf localhost ausgezeichnet umgesetzt wäre.

Und PHP ist ja so fürchterlich unsicher, dass es zig trillionenmal im gesamten Internet für Webanwendungen eingesetzt wird. :rolleyes:
 
Last edited by a moderator:
Back
Top