Manual:Securing database passwords/de

enthält standardmäßig MySQL-Datenbankbenutzer-IDs und Passwörter. Das Aufbewahren dieser Anmeldeinformationen in LocalSettings.php ist riskant, weil in seltenen Fällen PHP-Dateien als Klartext bereitgestellt werden, der diese Anmeldeinformationen der Welt offenbart:


 * PHP ist auf dem Server deaktiviert
 * PHP selbst geht kaputt
 * Du hast CGI search.pl (Ein häufig zu findener CGI-Suchskript) irgendwo in der Domain. Beschreibung des Exploits.

Falls du in diesen seltenen Fällen dein MySQL-Benutzername und Passwort geheim halten möchtest, sollten sie nicht teil der LocalSettings.php-Datei sein.

MySQL-Passwörter außerhalb von Webroot
Du solltest nie deine MySQL-Passwörter in einer Textdatei, welches im Webroot ist, speichern. Du kannst dies vermeiden, indem du folgendes machst:


 * Erstelle einen Ordner außerhalb deines Webroots. Zum Beispiel, wenn deine Website sich in " " befindet, dann erstelle einen Ordner namens "external_includes" außerhalb deines Webroots:
 * mkdir /external_includes
 * Erstelle eine Datei in den Ordner, den du gerade gemacht hast, namens etwas wie "mysql_pw.php" und platziere eine Variabel auf einer separaten Zeile für dein MySQL-Benutzername, Passwort, Hostname und Datenbankname, wobei jede Variable auf die tatsächlichen Werte gesetzt wird. Zum Beispiel mit nano als dein Editor:
 * nano /external_includes/mysql_pw.php
 * Gebe die folgenden Zeilen ein, wobei du natürlich die realen Werte anstelle der eingeklammerten "mysql_"-Füller verwendest:


 * Sorge dafür, dass keine Leerzeichen (leeren Zeilen) nach den Text bleiben.
 * Speichere und schließe die Datei. In Nano (Texteditor) ist es: Ctr (Speichern) und Ctr (Schließen)

Check with your distro for the webserver's user. This varies, and examples include "apache", "www-data", "nobody", "httpd". Lege dann die Berechtigungen für die Passwortdatei wie gefolgt fest:


 * chgrp apache mysql_pw.php
 * chmod 640 mysql_pw.php (entfernt Zugangsrechte von anderen und Schreibrechte vom Webserver)
 * (probably repeat with g-rxw ... for LocalSettings.php )
 * Make sure that the file owner has  (or chmod 400 LocalSettings.php)


 * Edit your LocalSettings.php file and add the following line in the beginning of the file:


 * Now remove these variables from LocalSettings.php:

$wgDBserver $wgDBname $wgDBuser $wgDBpassword

This way if somebody is able to access and display LocalSettings.php, all they will see is some settings rather than the password, username, etc. to your MySQL database and the real file containing that information is off limits to the web server. You still need to make sure LocalSettings.php is only readonly to the apache user as described above.