Sicherung der MySQL

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Dodo.

    Sicherung der MySQL

    Hallo Community,
    ich habe momentan einige Fragen / Probleme mit meiner MySQL und hoffe das ihr mir da helfen könnt.


    Information zur Datenbank und Anwendung

    ich habe mir vor kurzem eine kleine Datenbank angelegt, und übe mich gerade an der Sicherung von meiner Anwendung und der MySQL-Datenbank.

    Die Datenbank enthält circa 9.000 Einträge wobei sich ein Eintrag aus 3 Spalten (Name, Passwort, Punkte) zusammensetzt.
    Die Anwendung greift nicht direkt auf die Datenbank zu, sondern sendet die Werte an eine local gespeichert *.php Datei, welche den Befehl ausführt.

    Benutzer Opensource: [VB 2010] Login/Registrierung über PHP mit MySql


    Zu meinen Fragen / Problemen


    Ich numeriere meine Fragen / Probleme durch, wär froh wenn ihr das bei den Antworten zu den jeweiligen Fragen auch macht :) Oder einfach Zitieren :)

    1.) Ich habe erfahren, dass man der PHP Datei über den Browser einen Wert übergeben kann. Jetzt könnte jemand ja einfach mein Programm decompileren und herausfinden wie ich den Wert an welche Datei übergebe, und sich so unendlich viele Punkte generieren. Wie kann ich mich dagegen schützen?

    2.) Wie ist es, wenn sehr viele Zugriffe auf eine *.php Datei kommen, da beispielsweise 30 Person im selben moment einen Wert brauchen, werden alle Befehle nacheinander ausgeführt? Oder werden einige ignoriert? Will mich da lieber vorzeitig erkundigen als zu spät.

    3.) Ich schätze mal das die Datenbank je nach Anzahl von Einträgen auch etwas langsamer wird, gibt es eine Faustregel wieviele Einträge man maximal pro Datenbank habe sollte? Oder ist dies stark vom Server abhängig?

    4.) Gibt es gewisse ´must-have´ Sachen, um die Datenbank zu Schützen?

    Das waren dann erstmal meine Fragen / Probleme, ich hoffe ihr könnt mir helfen.
    Die Rechtschreibfehler sind heute mal gratis, also bedient euch :)

    Diversity schrieb:

    1.) Ich habe erfahren, dass man der PHP Datei über den Browser einen Wert übergeben kann. Jetzt könnte jemand ja einfach mein Programm decompileren und herausfinden wie ich den Wert an welche Datei übergebe, und sich so unendlich viele Punkte generieren. Wie kann ich mich dagegen schützen?
    Ein Php-Script ist im Grunde nix als ein sog. Proxy, also etwas, was Anforderungen entgegennimmt und bearbeitet, bzw. eben ablehnt.
    Wenn dein Php-Proxy eine Methode zum Generieren von Punkten anbietet, dann kann ein Angreifer diese Funktionalität auch ausnutzen.

    2.) Wie ist es, wenn sehr viele Zugriffe auf eine *.php Datei kommen, da beispielsweise 30 Person im selben moment einen Wert brauchen, werden alle Befehle nacheinander ausgeführt? Oder werden einige ignoriert? Will mich da lieber vorzeitig erkundigen als zu spät.
    Php ist eine "alte", total ausgereifte und hochoptimierte Technologie. Ich denke, auch ein massenhafter Zugriff macht keine Probleme, jedenfalls nicht der Php-Teil der Geschichte.

    3.) Ich schätze mal das die Datenbank je nach Anzahl von Einträgen auch etwas langsamer wird, gibt es eine Faustregel wieviele Einträge man maximal pro Datenbank habe sollte? Oder ist dies stark vom Server abhängig?
    DBs sind dazu erfunden, dass sie riesige Datenmengen verwalten - das kann in den TeraByte-Bereich gehen

    4.) Gibt es gewisse ´must-have´ Sachen, um die Datenbank zu Schützen?
    In MySql kann man Nutzergruppen anlegen, die mit bestimmten Rechten ausgestattet sind.
    Das ist eiglich, was von MySql aus vorgesehen ist, um die DBs zu schützen.
    Danke erstmal für die Antworten schonmal sehr hilfreich und auch beruhigend ^^

    nur die Frage die bleibt ist die aus dem Teil 1 Wie kann ich mich am besten dagegen schützen?
    Die PHP Datei mit den Punkte Funktioniert wiefolgt:

    Meine Anwendung lädt 3 Datenwerte hoch: Name, Punkte, +/- dadurch sucht die PHP Datei den Namen und je anch +/- werden die Punkte mit dem Werte ´Punkte´ erhöht/verringert.
    Gibt es eine möglichkeit zu kontrollieren wer/was die Daten sendet? Also ob es wirklich meine *.exe ist ?

    Freu mich weiterhin über antworten

    Diversity schrieb:

    Gibt es eine möglichkeit zu kontrollieren wer/was die Daten sendet? Also ob es wirklich meine *.exe ist ?

    nein.

    Die Kommunikation deiner Exe kann abgehört werden, und dann kann man eine eigene Exe schreiben, die genau gleichartig mit deinem Php-Proxy interagiert.

    Sicher wäre nur eine INet-Verbindung via TSL, denn eine solche kann die gesamte Kommunikation verschlüsselt ablaufen lassen.
    "Leider" sichert TSL auch gegen "ManInTheMiddle" - Angriffe ab, und dazu wird iwas mit einem Zertifikat benötigt, und davon versteh ich leider nix, und deshalb habich noch nie eine TSL-Verbindung ans Laufen gebracht.
    Interessanterweise kann VBParadise neuerdings auch über TSL connected werden - gibts unten einen Button für (müsste ich mal probieren ;))

    Jo, scheint zu gehen - der DomainName inne Addresszeile wird schön blau.
    VBParadise hat wohl noch iwie kein richtiges Zertifikat, sodaß man eine Ausnahme zulassen muß, damit das nicht identifizierte Zertifikat trotzdem akzeptiert wird.

    ErfinderDesRades schrieb:

    Php ist eine "alte", total ausgereifte und hochoptimierte Technologie. Ich denke, auch ein massenhafter Zugriff macht keine Probleme, jedenfalls nicht der Php-Teil der Geschichte.
    Musste lachen. PHP-Skripts werden bei jedem Aufruf vom Compiler neu bearbeitet, das ist oft ein großer Performancefresser, und die Sprache ist der letzte Ranz.
    Dass Facebook seine eigene PHP-Variante mit nem eigenen PHP-Compiler nutzt, ist kein Zufall.
    PHP mag grütze sein, aber 30 Aufrufe gleichzeitig sind kein problem, zumla ja in der Datie nicht viel gemacht wird nehme ich an was performance frisst. Die Datenbank hat einen Buffer, heißt wenn sie mit dem verarbeiten der Queries nicht nach kommt werden sie trotzdem zwischen gespeichert und nach einander abgearbeitet.

    Das Communities wie FB natürlich auf eine bessere Variante (HipHop) zurück greift ist klar, weil die mit ganz anderen massen an Zugriffen umgehen müssen.

    Zu deinem Problem 1)
    Du kannst deine Punkte mit einem Hash Algorithmus "sicher" übertragen. Natürlich kann man hierbei immernoch via decompiling an den Algorithmus kommen, aber man erschwert schonmal die Arbeit, ebenso wenn du selbst den Algorithmus noch veränderst und nicht den standard md5 oder sha1 Hash nimmst. Zudem kannst dein Prog noch Obfusieren was auch das Dekompilierne erschwert. Ganz verhindern kann man das nicht, aber man kann es zumindest erschweren.

    Eine andere Variante wäre es eine TCP Verbindung zu der PHP Datei aufzubauen und somit ein eigenes Protokoll zu schreiben und in PHP die Verbindung auch via Sockets zu verarbeiten. Dürfte aber etwas höhere Programmierskills erfordern und machts auch nicht gegen Dekompilieren sicher. Wer sich den Code ansehen kann, kann natürlich IMMER eigene Daten senden. Jedoch schränkt man die Gruppe derer ein, die dazu in der Lage sind, wie z.b. die ganzen Script Kiddies, die durch Sniffen oder so schnell die URL herausbekämen.