Wichtige MySQL-Logindaten in PHP absichern
Ich habe gerade über einen ziemlich tollen Trick gelesen, mit dem man seine MySQL-Benutzerdaten in PHP-Scripten sehr gut absichern kann. Man muss einfach zur httpd.conf bzw. zur entsprechenden Virtualhost-Konfigurationsdatei in /etc/apache2/sites-available folgende Zeilen hinzufügen:
1 2 3 4 5 | <Directory /var/www/html/> php_value mysql.default_user **Benutzername** php_value mysql.default_password **Passwort** php_value mysql.default_host **mein.mysqlserver.tld** </Directory> |
Daraufhin kann man in jedem PHP-Script unter /var/www/html einfach folgenden Code ausführen und man erhält eine Verbindung zu dem Datenbankserver:
1 | $link = mysql_connect() or die(mysql_error()); |
Wenn nun z.B. irgendein Blog unsicheres PHP-Script geknackt wird, kann der Angreifer nicht an die Datenbank-Zugangsdaten kommen – das könnte einem Unternehmen im Ernstfall den Hintern retten.






Sehr geil, vielen Dank! Es ist auf jeden Fall sehr smart Login Dateien nicht im Klartext in die Scripte zu schreiben.
Gegen ein XSS-Angriff und einen Output wie:
echo ini_get(‘mysql.default_user’);
ist man damit aber auch nur bedingt gewappnet.
@Sebastian, du meinst wahrscheinlich einen Angriff, bei dem PHP-Code auf dem Server ausgeführt werden kann. Diese Angriffe heißen aber nicht XSS-Angriff.
Ich habe es soeben ausprobiert: Wenn man in der php.ini zu disable_functions noch ini_get hinzufügt und displayErrors = Off setzt, dann hat man dieses Problem auch gelöst
Ein cooler Trick, werd ich mir bookmarken.
Ich meine Cross-Site-Scripting (XSS). Is ja auch egal
ini_get und displayErrors ausschalten, dann klappts. Stimmt.
Ist aber eigentlich wie immer: der schönste Softwarecode ist nicht 100% sicher, wenn die Serverumgebung / Konfiguration nicht sicher ist.
Grüße!
-sebastian