Rechte mit PHP und MySQL Passwörtern
Mike
- php
0 norbert =:-)0 Mike
0 Sven Rautenberg
Hallo Leutz,
habe ein kleines Problem mit der Sicherheit.
Wenn man ein PHP Script schreibt, dass Verbindung zu einer MySQL Datenbank aufnimmt, dann muss man ja die Passwörter für MySQL im Quelltext der PHP Datei schreiben. Damit der Browser die Datei auch lesen kann, sind die Rechte der "Others" ja auch auf Read. Somit kann aber jeder User auf der Maschine die Datei mit einem Texteditor auslesen. Als Systemadministrator kann ich natürlich den Benutzer der Datei auf den des Webservers stellen, dann wäre das Problem gelöst. Was machen aber die, die keinen root Zugriff haben und nicht den Befehl chown ausführen dürfen?
Gibts da ne andere Möglichkeit als das PHP zu Verschlüsseln?
Gruß Mike
Hallo Mike!
Wenn man ein PHP Script schreibt, dass Verbindung zu einer MySQL Datenbank aufnimmt, dann muss man ja die Passwörter für MySQL im Quelltext der PHP Datei schreiben.
Yo.
Somit kann aber jeder User auf der Maschine die Datei mit einem Texteditor auslesen.
Meinst Du aus dem Internet? Echt? Kannst Du das mal auf meiner Homepage machen - php ist auf jeder Seite - bin schon neugierig ...
Zu Deiner Frage - ich würde die Routine oder auch nur das Passwort in eine Textdatei ausserhalb der Serverstruktur auslagern und mittels Include einbinden!
mfg
norbert =:-)
Hallo Norbert,
da haben wir uns wohl missverstanden. Ich meinte nicht jeder User aus dem Internet. Sondern ein User der ebenfalls Zugang auf den selben Server hat wie du. Einfach ein anderer Benutzer kann mit z.B. "pico /home/unterverzeichnis/diedatei.php" deine PHP Files auslesen.
Mike
Hallo Mike!
Bin ja kein Linux-Guru - aber wurden dafür nicht Berechtigungen (bzw. Gruppen) geschaffen?
mfg
norbert =:-)
Moin!
habe ein kleines Problem mit der Sicherheit.
...ein unlösbares Problem.
Wenn man ein PHP Script schreibt, dass Verbindung zu einer MySQL Datenbank aufnimmt, dann muss man ja die Passwörter für MySQL im Quelltext der PHP Datei schreiben. Damit der Browser die Datei auch lesen kann, sind die Rechte der "Others" ja auch auf Read. Somit kann aber jeder User auf der Maschine die Datei mit einem Texteditor auslesen.
Damit der Webserver (und nicht der Browser!) die Datei lesen kann, muß er zumindest Leserechte haben. Da ist es ziemlich egal, ob er nun in deiner Gruppe Mitglied ist oder nicht. Denn jeder andere User kann ein PHP-Skript schreiben, welches deine Passwörter ausliest - dieser Zugriff wird als User "Webserver" erledigt, und der muß zwingend lesen können.
Dieses Problem ist nicht wirklich gut in den Griff zu bekommen bei PHP. Es gibt den safe-mode, bei dem gewisse Operationen unterbunden werden können. Dazu könnte beispielsweise ein Öffnen von Dateien außerhalb des Verzeichnisbaumes des jeweiligen Users gehören, was dann einfach verboten wird.
Im Prinzip müßte es einen Mechanismus geben, der alle deine PHP-Skripte unter deiner User-ID ausführt (und die anderer User unter deren User-ID). Dann könntest du die Rechte deiner Dateien auf 600 oder 400 stellen und wärest vor Mitlesern sehr sicher. Aber sowas geht mit PHP leider nicht.
Die potentielle Sicherheitslücke mußt du wohl oder übel hinnehmen, oder dir einen Hoster suchen, der sowas nicht ermöglicht. Wahlweise kannst du dir auch einen ganz eigenen Server mieten, auf dem du dann tun und lassen kannst, was du willst. Die Abwesenheit von fremden Usern bedeutet natürlich auch mehr Sicherheit.
- Sven Rautenberg