markus_walther: MySQL - Sicher?

Hallo!

Ich stehe jetzt kurz davor, meine erste Homepage hochzuladen. Hoster usw. ist alles gefunden...
Jetzt stellt sich mir die Frage, ob meine MySQL-DB nicht ein wenig unsicher ist:

Die DB ist mit einem Usernamen+Passwort geschützt. Diese Daten stehen in der db.inc.php. Die Rechte die der User hat, der in diese Datei eingetragen ist, sind INSERT, SELECT ... Wenn jetzt jemand auf seiner Seite die db.inc.php einfach included, könnte er ja theoretisch auf die Datenbank zugreifen oder?
Wie kann ich mich davor schützen

mfg
markus

  1. Mahlzeit markus_walther,

    Wenn jetzt jemand auf seiner Seite die db.inc.php einfach included,

    Wie sollte er das tun?

    könnte er ja theoretisch auf die Datenbank zugreifen oder?

    Nein.

    Wie kann ich mich davor schützen

    Das brauchst Du nicht.

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. okay danke schonmal, aber warum kann er nicht auf meine Datenbank zugreifen, wenn er die Verbindung hat?!

      markus

      1. Mahlzeit markus_walther,

        okay danke schonmal, aber warum kann er nicht auf meine Datenbank zugreifen, wenn er die Verbindung hat?!

        Woher sollte er die Verbindungsdaten haben?

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. <?php
          include("www.meine-domain.de/includes/db.inc.php");
          ?>
          Und dann is er drauf oder nich?

          Bzw.: Wie viel kann er damit anfangen? ;)

          1. Hi,

            <?php
            include("www.meine-domain.de/includes/db.inc.php");
            ?>
            Und dann is er drauf oder nich?

            Nein, damit bekommt er die Datei eingebunden, die bei ihm im Verzeichnis www.example.com/includes [1] liegt, sofern sowas unterhalb des aktuellen Verzeichnisses existiert.

            Vermutlich meinst du http://www.example.com/includes/db.inc.php?

            Wenn jemand das einbindet, bekommt er genau das gleiche wie du, wenn du diese Ressource mit deinem Browser abrufst - ausschliesslich die *Ausgabe* dieses Scriptes.

            Bzw.: Wie viel kann er damit anfangen? ;)

            So gut wie gar nichts.

            [1] Für Beispiele gibt es u.a. explizit example.com/.net/.org. Bitte verwende diese, und keine potentiell existierenden Domains anderer Leute!

            MfG ChrisB

            --
            “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
          2. Hallo Markus,

            Bzw.: Wie viel kann er damit anfangen? ;)

            Nichts. Neben der von ChrisB schon angesprochenen Tatsache, dass er nicht den PHP-Code sondern nur die Ausgabe des Scriptes (also vermutlich garnichts) bekommt, müsste er erstmal von außen auf den Datenbankserver zugreifen können. Zumindest bei meinem Provider ist es standardmäßig so, dass man nur von localhost aus auf die Datenbank zugreifen kann.

            Gruß,
            Tobias

  2. Hello Markus,

    Ich stehe jetzt kurz davor, meine erste Homepage hochzuladen. Hoster usw. ist alles gefunden...
    Jetzt stellt sich mir die Frage, ob meine MySQL-DB nicht ein wenig unsicher ist:

    Die DB ist mit einem Usernamen+Passwort geschützt. Diese Daten stehen in der db.inc.php. Die Rechte die der User hat, der in diese Datei eingetragen ist, sind INSERT, SELECT ... Wenn jetzt jemand auf seiner Seite die db.inc.php einfach included, könnte er ja theoretisch auf die Datenbank zugreifen oder?
    Wie kann ich mich davor schützen

    Die Sicherheit Deiner Datenbank hängt an unterschiedlichen seidenen Fäden, die i.d.R. parallel gespannt sind, also die Zugriffswege erweitern und somit die Sicherheit vermindern.

    Deine Datenbankdaten sind irgendwo physisch gespeichert.
    Wer hat lesenden oder sogar schreibenden Zugriff auf diesen Speicherort?

    Deine Datenbank wird durch einen Dienst bedient, den Datenbankserver
    Wer hat Rechte auf diesen Server? Wer hat ihn gestartet oder kann ihn stoppen?

    Dein Datenbankserver ist per Socket vom Local Host erreichbar
    Wer kennt die Zugangsdaten?

    Dein Datenbankserver ist per Port (typisch 3306) erreichbar.
    Wer kennt die Zugangsdaten?

    Jeder Datenbankuser kann per eigenem Host, Usernamen und Passwort identifiziert werden. Wenn Du nun einem User@Localhost mit Passwort 123456 alle Rechte gibst, dann kann jeder, der sich als dieser User ausgeben kann, auf deinen Datenbankserver zugreifen, nicht aber auch unbedingt auf die Datenbank-Datenverzeichnisse.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
  3. hi,

    [..] Wenn jetzt jemand auf seiner Seite die db.inc.php einfach included,

    includen wohl kaum, aber reingucken kann jeder, wenn der PHP-Parser mal spinnt.

    Hotti