MySql zugansgdaten verstecken
Tim
- php
Hei ich brauch mal eure Hilfe
und zwar hab ich folgendes Problem wenn man eine Verbindung zu einer SQL datenbank herstellen will muss man ja die Zugangsdaten zur Datenbank im Code angeben alos zb in PHP
.......
$user = "dbuser";
$password = "datenbankpasswort";
.......
Wie kann ich die VErbindung anders herstellen bzw wie kann ich es so machen das die Daten nicht im Script stehen und keiner darauf zu greifen kann ??
Danke schonmal im vorraus
Gruß Tim
Hello,
Wie kann ich die VErbindung anders herstellen bzw wie kann ich es so machen das die Daten nicht im Script stehen und keiner darauf zu greifen kann ??
Dass keiner darauf zugreifen kann, ist sicher keine gute Idee. Dein PHP-Modul im Webserver sollte schon darauf zugreifen können, oder wenn Du die CGI-Version von PHP benutzt, dann eben der CGI-Prozess, der zur Ausführung beauftragt wird. Der kann mWn ja unter einen zugewiesenen User (über die Servereinrichtung) gestartet werden...
Üblicherweise kann man die benötigten Daten als Variablen mit require()
http://www.php.net/manual/en/function.require.php
einbinden.
Findet beim Require ein fehler statt, wird das Script abgebrochen mit der Meldung, an welcher Stelle das Hinzuladen ausgelöst wurde.
Wenn man nun noch den Include Path
http://www.php.net/manual/en/ini.core.php#ini.include-path
entsprechend setzt, muss man nicht mehr offenlegen, wo die "versteckten" Dateien liegen.
Allerdings sollte man verhindern, dass in Verzeichnissen gesucht werden darf, die irgendwie durch User oder Hacker beschreibbar sind. Die Sicherherit kann man auch durch entsprechende reihenfolge der Suchpfade erhöhnen. Mach mal ein paar Experimente zu dem Thema!
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo Tom
... Die Sicherherit kann man auch durch entsprechende reihenfolge der Suchpfade erhöhnen. Mach mal ein paar Experimente zu dem Thema!
Macht das ganze wirklich Sinn? Ich meine am Schluss muss doch das Passwort ja doch irgendwo auf dem Server in Klartext (oder mit einem einsehbaren Schlüssel verschlüsselt...) gespeichert werden.
Wer also Zugriff hat auf den Server, kanns einsehen (ich meine mit Zugriff z.B. eingelogt mit genügend Rechten z.B. per FTP oder so). Da kann mans doch grad so gut in Klartext im PHP lassen, oder?
Gruss
Louis
P.S.: vielleicht möchte Tim was Spezielles machen, z.B. das Skript in einem Ordner, wo auch der Kollege Zugriff hat, aber das Passwort in einem Ordner, wo nur er Zugriff hat. Ich denke dazu wäre dein Ansatz gedacht, nicht?
Aber im Normalfall ist es doch schon sicher genug, das Passwort wie im Ausgangsposting beschrieben zu speichern, oder?
Hello,
Macht das ganze wirklich Sinn? Ich meine am Schluss muss doch das Passwort ja doch irgendwo auf dem Server in Klartext (oder mit einem einsehbaren Schlüssel verschlüsselt...) gespeichert werden.
Wer also Zugriff hat auf den Server, kanns einsehen (ich meine mit Zugriff z.B. eingelogt mit genügend Rechten z.B. per FTP oder so). Da kann mans doch grad so gut in Klartext im PHP lassen, oder?
Nicht ganz.
Was passiert denn, wenn der PHP-Parser ausfällt bzw. die Anweisung, dass *.php zu parsen ist und nur der HTML-Code ausgeliefert werden darf?
Dann wird die Datei ggf. naturel ausgeliefert. Wenn da dann "require()" drinsteht, weiß niemand die Passworte, wenn sie aber im Klartext drinstehen, werden sie auch mit ausgeliefert.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo Tom
Nicht ganz.
Was passiert denn, wenn der PHP-Parser ausfällt bzw. die Anweisung, dass *.php zu parsen ist und nur der HTML-Code ausgeliefert werden darf?Dann wird die Datei ggf. naturel ausgeliefert. Wenn da dann "require()" drinsteht, weiß niemand die Passworte, wenn sie aber im Klartext drinstehen, werden sie auch mit ausgeliefert.
Tatsächlich. In diesem Forum lernt man ja immer wieder was...
Aber wieso steht das denn in keiner PHP/MySQL-Einführung, die ich gelesen habe? ...
Ist diese Sicherheitslücke schlimm? Bzw. wie gross ist die Wahrscheinlichkeit, dass der Server funktioniert, aber der PHP-Parser ausfällt?
Empfiehlst Du mir, dies überall zu ändern? (Ich habe mehrere kleine Datenbank, z.B. eine Kundenkartei mit vielleicht 200 Einträgen etc.)
Gruss
Louis
Hello,
Aber wieso steht das denn in keiner PHP/MySQL-Einführung, die ich gelesen habe? ...
Ich kenne den aktuellen Stand des Tutorials nicht, aber http://tut.php-q.net/ war da mMn ganz empfehlenswert. Du musst es aber tatsächlich von vorne durcharbeiten, sonst geht Dir doch irgendeine Information durch die Lappen.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom