Daten von MySQL-Datenbank abrufen

  • VB.NET
  • .NET 3.5

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Mono.

    Daten von MySQL-Datenbank abrufen

    Hallo,
    ich würde gerne die Daten von meinem Server mit den Daten aus meinem Programm updaten. (Tabelle mit Label User; Online: Admin; im Programm steht: Admin21)
    Wenn ich eine direkte MySQL Verbindung mache, ist das unsicher, da die Verbindungsinformationen unverschlüsselt gespeichert sind.
    Wie kann ich das stattdessen realisieren mit PHP + MySQL? Wie machen es große Programme wie WOW, GTA V oder Corel, Daten auf ihren Servern zu speichern, ohne dabei ein Risiko (z.B. unverschlüsselt, offene Verbindungsdaten) eingehen?

    Danke.
    :thumbup:
    Hi,

    Wie kann ich das stattdessen realisieren mit PHP + MySQL?


    möchtest du jetzt eine komplette Lösung hier als Antwort? Es gibt viele Beispiele dazu (auch in diesem Forum) im Internet.
    Als Grundsatz ist aber deine Erkenntnis korrekt: Du solltest keine direkten Verbindungen zu deinem DB Server im Internet aufbauen. Du solltest also immer irgendeinen "Layer" haben, welcher die Vermittlung zwischen Client und DB Server übernimmt. Das ist oft ein auf HTTP(S) basierender Webservice, kann aber auch ein komplett eigenes Protokoll sein.
    Der Hauptpunkt ist, dass sich der Client mit einem Service verbindet und mit diesem eine bestimmte definierte Kommunikation durchführen kann (und sonst nix) und das diese gesendeten Daten Serverseitig validiert werden (SQL Injektion). Im Idealfall ist die Kommunikation dann auch verschlüsselt, so dass keiner die gesendeten Daten lesen kann. Die Authentifizierung erfolgt also für den Client am Service und nicht direkt an der Datenbank.

    Die Vorteile gehen dabei auch weit über die Sicherheit hinaus.. denn theoretisch könntest du einen "Webuser" an deiner Datenbank einrichten, der fein granuliert nur genau die Berechtigungen besitzt, die du benötigst. Allerdings wird es da (je nach Anforderung) auch schon schwierig, die Berechtigungen für einzelne Clients spezifisch zu setzen und ist in meinen Augen generell nicht ratsam. Oft sind die Treiber für die Datenbank auch anfällig bei Verbindungsabrüchen usw. Ein Zwischenlayer gibt dir einfach die beste Kontrolle, Wartbarkeit, Skalierbarkeit und Flexibilität.
    Das ist meine Signatur und sie wird wunderbar sein!