SQL-Zugangsdaten verschlüsseln

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SQL-Zugangsdaten verschlüsseln

    Moin,

    eine Frage, die mich schon länger verfolgt:

    Wie vermeide ich, daß sich jemand mit den Zugangsdaten, die für meine PHP-Scripte verwendet werden, an der Datenbank zu schaffen macht?

    Ich habe einen Mitglieder-Bereich für unsere Vereins-Homepage programmiert und die Schreib/Lese-Zugriffe auf die SQL-Datenbank erfolgen immer mit dem gleichen User.

    Im PHP-Script werden ja die Zugangsdaten wie im Beispiel angegeben:

    ---- schnipp ---------------------------------------
    $database= "dbname";
    $table= "member";
    $sqlhost= "localhost";
    $sqluser= "username";
    $sqlpass= "password";

    mysql_connect($sqlhost,$sqluser,$sqlpass) OR DIE("Couldn't connect to MySQL server!");
    mysql_select_db($database) OR DIE("Couldn't select database!");

    bla bla bla
    ------- schnapp -----------------------------------

    Wer nun die PHP-Datei ausliest, kann sich ja dann mit MySQLAdmin fröhlich an der Datenbank zu schaffen machen, oder habe ich einen Denkfehler?

    Wie vermeidet man diese Lücke?
    Nutzt es was, die Zugangsdaten in eine extra Datei zu packen (die im
    eigentlichen Script included wird) und diese dann per .htaccess zu schützen? Kann dann das ausführende Script noch auf die Include-Datei zugreifen?

    Ich habe schon im IN und im Forum gesucht, konnte aber nichts finden.
    Ein dickes "Sorry" im Voraus, wenn ich einen Thread übersehen haben sollte, der das Thema behandelt.

    Danke und Grüßle,

    Rasihasi

  • #2
    Wenn die Daten die Erweiterung .php hat wird von extern wohl kaum jemand darauf zugreifen können bzw. diese auslesen können ... handelt es sich bei dem Zugreifenden um einen "Internen" Benutzer, der über das Filesystem auf die Datei zugreifen darf, so hilft Dir auch keine .htaccess.

    Du kannst Die Zugangsdaten natürlich auch über ein reversibles Verschlüsselungsverfahren verschlüsseln und dann von der Übergabe an die Datenbank wieder entschlüsseln jedoch wäre auch dieses für einen "Internen" Benutzer durchschau- und nachvollziehbar.

    Ich persönlich halte es immer für besser Sicherheitsrelevante Daten in einem Bereich oberhalb des Webroots zu platzieren und von dort zu includen um sich vor einem fehlerhaften Interpreter zu schützen. Aber auch das hilft natürlich nur gegen einen externen Zugriff.
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      versuch du doch erstmal die daten auszulesen

      Kommentar


      • #4
        Hi,

        wenn der Name der Include-Datei bekannt ist, gebe ich die komplette URL
        im Browser ein und er zeigt mir ganz brav den Inhalt dieser Datei im Klartext an. Auslesen ist also nicht das Problem.

        Sobald ich eine HTML-Datei habe, in der mittels PHP Datenbankzugriffe
        getätigt werden, kann ich diese ja im Klartext lesen und habe dann auch den Name der Include-Datei.

        Mit Web-Spider und IntelliTamper ist es mir nicht gelungen, die Test-PHP-Datei zu laden, aber wer weiß denn, was es noch an Tools gibt, die es vielleicht doch können.

        Wenn ich das alles zusammenfasse, ist es notwendig alle Seiten, auf denen ein DB-Zugriff erfolgt, in PHP zu schreiben und die Include-Datei außerhalb des WebRoot zu lagern, oder?

        Danke und Grüßle,

        Rasihasi

        Kommentar


        • #5
          Original geschrieben von RasiHasi
          wenn der Name der Include-Datei bekannt ist, gebe ich die komplette URL
          im Browser ein und er zeigt mir ganz brav den Inhalt dieser Datei im Klartext an. Auslesen ist also nicht das Problem.
          Deshalb schrieb ich "Wenn die Daten die Erweiterung .php" und jeder kluge PHP-Coder hält sich auch an das Prinzip ... eine Datei deren Extension mit dem PHP - Handler verbunden ist wir immer geparsed ... und somit nicht einfach so ausgegeben ...
          Original geschrieben von RasiHasi
          Mit Web-Spider und IntelliTamper ist es mir nicht gelungen, die Test-PHP-Datei zu laden, aber wer weiß denn, was es noch an Tools gibt, die es vielleicht doch können.
          Auch diese Tools können nur auslesen was Ihnen der Webserver liefert ... und der läßt's halt durch den Parser laufen ...
          Original geschrieben von RasiHasi
          Wenn ich das alles zusammenfasse, ist es notwendig alle Seiten, auf denen ein DB-Zugriff erfolgt, in PHP zu schreiben und die Include-Datei außerhalb des WebRoot zu lagern, oder?
          Oder die Include-Datei einfach mit einer .php-Extention zu versehen (z.B.: config.inc.php) ... aber ich erwähnte das glaube ich schon ...
          carpe noctem

          [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
          [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

          Kommentar


          • #6
            alles klaro und vielen Dank nochmal für die erleuchtenden Zeilen !!!

            RasiHasi

            Kommentar

            Lädt...
            X