php/ mysql und Passwoerter

Dieses Thema im Forum "Ruby, php, Perl, Python ..." wurde erstellt von rikola, 13.10.2008.

  1. #1 rikola, 13.10.2008
    Zuletzt bearbeitet: 13.10.2008
    rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Hallo,

    mit PHP hat man ein nettes Web-Interface zu (my)sql. Ich habe folgendes Verstaendnisproblem: Wenn die Datenbank Passwort-geschuetzt ist, muss das PHP-Skript ja das Passwort irgendwoher haben. Ist es sicher, dies im html-tree innerhalb des Web-Interfaces zu speichern? Bekommt man es dann nicht mit 'wget'? Oder wie bringe ich sonst auf sicherem Wege das Passwort fuer die Datenbank bei?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.053
    Zustimmungen:
    8
    das kommt darauf, an, wie Du es abspeicherst.

    eine rein .txt z.B. kann man herunterladen - also unsicher.
    einen .php z.B. würde erst interpretiert - wenn da also das PW nicht ausgegeben wird sondern nur in einer Variable gespeichert und bei korrekter Serverkonfiguration also kein Problem.

    Da das meist noch includet wird kann man auch mit .htaccess z.B. noch was machen.

    Schau Dir einfach mal entsprechende Beispiele an, wie es dort gelöst wird - phpbb, phpmyadmin, ...
     
  4. #3 sim4000, 13.10.2008
    Zuletzt bearbeitet: 13.10.2008
    sim4000

    sim4000 Lebende Foren Legende

    Dabei seit:
    12.04.2006
    Beiträge:
    1.933
    Zustimmungen:
    0
    Ort:
    In meinem Zimmer
    Normal wird um ein Password zu speichern immer eine PHP Datei genommen. Also sowas wie config.inc.php. Der Inhalt sieht dann Ungefähr so aus:
    PHP:
    <?php
       $user 
    "";
       
    $password "";
       
    $database "";
       
    $host "";
    ?>
    und beim herstellen der Verbindung sieht das dann wie folgt aus:
    PHP:
    <?php
       
    include_once('config.inc.php');
       
    $link mysql_connect($host$user$password);
       [...]
       unset(
    $user$host$password$database);
    ?>
    wichtig ist danach die Variablen wieder zu löschen, das die nicht irgendwann noch unerlaubt ausgelesen werden können.
    Kann man bestimmt auch anders/besser lösen (zB in ein Array packen). Aber das ist so die gängigste Lösung.

    //edit
    Nein, mit wget kann man es nicht bekommen, weil wget das gleiche Vorgesetzt bekommt wie ein normaler Browser.
     
  5. #4 rikola, 13.10.2008
    Zuletzt bearbeitet: 13.10.2008
    rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Danke, v.a. an sim4000, das ist ein sehr hilfreiches Stueck Code. Wie lange bleibt die mysql-Datenbank dann offen, v.a., wenn zum Beispiel die Verbindung unterbrochen wird? Ich nehme an, sowas muesste man dann ueber Cookies loesen, was ja dann eine ganz andere Geschichte ist...


    Danke an beide nochmals.
     
  6. #5 sim4000, 13.10.2008
    sim4000

    sim4000 Lebende Foren Legende

    Dabei seit:
    12.04.2006
    Beiträge:
    1.933
    Zustimmungen:
    0
    Ort:
    In meinem Zimmer
    Benutzerdaten in Cookies schreiben ist ganz böse! Die Page Besucher können ja die Cookies auslesen. (va im Firefox geht das sehr gut)

    Löschen von Variablen: http://de3.php.net/unset (wie oben in meinem Codeschnipsel)
    Die Verbindung bleibt so lange offen, wie du $link mitnimmst. Das ist ja deine Verbindung zur Verbindung.
    Wenn die Verbindung aufgebaut ist, kannste die Variablen einfach löschen. Hast die Benutzerdaten ja schon mysql_connect(); übergeben. Also werden die Variablen überflüssig und zu einen Sicherheitsrisiko.

    Zum Thema unterbrochene Verbindung: Dazu darf es nicht kommen. Gängige Lösung ist es, die Verbindung einmal aufzubauen, dann die Zugangsdaten zu löschen und diese Verbindung die ganze Zeit aufrecht zu halten.

    Die Verbindung bleibt den ganzen Seitenaufbau über offen. Wenn wieder ein Link geklickt wird, oder what ever, wird die Verbindung wieder neu aufgebaut. Dann geht also der Spaß von vorne los.
     
  7. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.053
    Zustimmungen:
    8
    Alternativ auch über einen "Singleton" - also daß die gesamte Applikation eine gemeinsame Datenbankverbindung benutzt - ist aber Programmieraufwand.

    Übrigens: Achte darauf, daß Du die config.inc.php auch immer so benennst, daß sie auch wirklich vom php-Parser erkannt und verarbeitet wird. Und auch keine Backups davon anlegen - config.inc.php.old oder config.inc.php_20080101 sind auf live-Systemen sehr unschön und ein beliebtes Sicherheitsloch...
     
  8. #7 bitmuncher, 13.10.2008
    bitmuncher

    bitmuncher Der Stillgelegte

    Dabei seit:
    08.05.2007
    Beiträge:
    3.171
    Zustimmungen:
    0
    Einfache Lösung:

    Konfigurationsdateien mit Passwörtern ausserhalb des DocumentRoot ablegen und mittels file_get_contents() einlesen. Dann bekommt man sie nicht direkt über den Webserver.
     
  9. #8 sim4000, 13.10.2008
    sim4000

    sim4000 Lebende Foren Legende

    Dabei seit:
    12.04.2006
    Beiträge:
    1.933
    Zustimmungen:
    0
    Ort:
    In meinem Zimmer
    Oder wenns ne PHP Datei ist einfach mit include. ;)
    Dann hat man gleich die Variablen.
     
  10. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  11. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Das mit include hatte ich bereits versucht. Damit kam ich nicht an eine Datei ausserhalb der Wurzel des Dokumentbaumes heran - macht ja auch Sinn, da das ganze unter dem Webserver laeuft, der ja eigentlich nichts ausserhalb der Wurzel sehen sollte. Ich werde mir mal anschauen, ob man das Problem mit file_get_content nicht hat. Danke - das waere die mir liebste Loesung.
     
  12. #10 sim4000, 13.10.2008
    sim4000

    sim4000 Lebende Foren Legende

    Dabei seit:
    12.04.2006
    Beiträge:
    1.933
    Zustimmungen:
    0
    Ort:
    In meinem Zimmer
    Nein.
    Mit include greifst du auf das Filesystem zu, wenn der Server nicht anständig konfiguriert ist, kann man sogar die /etc/passwd auslesen.
    Das wird an den Berechtigungen liegen das dass nicht geht. musste mal die chmods prüfen.
    PHP:
    include("/var/www/nicht_htdocs/config.inc.php");
    So muss es gehen.
     
Thema:

php/ mysql und Passwoerter

Die Seite wird geladen...

php/ mysql und Passwoerter - Ähnliche Themen

  1. [Suche] Spezielles CMS (PHP/MySQL)

    [Suche] Spezielles CMS (PHP/MySQL): Hallo, ich suche ein CMS das folgende Kriterien erfüllt: OpenSource Datenbank Newssystem mit Archiv dynamisches Menü mit Kategorien und...
  2. chroot von apache/php/mysql

    chroot von apache/php/mysql: hallo leute! wie konfiguriere und installier ich apache/php/mysql so das ich es in einer chroot umgebung laufen lassen kann? oder kann mir...
  3. Apache/PHP/MySQL installieren

    Apache/PHP/MySQL installieren: Hi! Ich möchte auf meinem Linux einen Apache mit PHP und MySQL uinstallieren um Scripts zu testen. Unter Windows habe ich das mit PHP Triad...
  4. php/mySQL Bildergallery gesucht !

    php/mySQL Bildergallery gesucht !: Also ... wir suchen für das Board eine php/mySQL Bildergallery damit wir die Wallpaper besser verwalten können ! Entweder eine mit User...
  5. Probleme mit FFmpeg / PHP/ 70 Load / iowait

    Probleme mit FFmpeg / PHP/ 70 Load / iowait: Hallo liebe Community, Wir haben ein kleines Problem mit unserem Debian Server und braeuchten dringend einen Ratschlag :) Ich fang einfach...