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
 * Type the following lines using the real values of course in place of the bracketed "mysql_" fillers:


 * Take care to leave no whitespace (blank lines) after the text.
 * Save and close the file. In nano this is: Ctr (save) and Ctr (close)

Check with your distro for the webserver's user. This varies, and examples include "apache", "www-data", "nobody", "httpd". Then set the permissions for the password file like so:


 * chgrp apache mysql_pw.php
 * chmod 640 mysql_pw.php (removes the access-rights from others and write-rights from 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.