Skip to content

Wichtige MySQL-Logindaten in PHP absichern

by Beni on März 30th, 2010

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.

Das wird dich vielleicht auch interessieren:

From → Programmieren

5 Comments
  1. Sehr geil, vielen Dank! Es ist auf jeden Fall sehr smart Login Dateien nicht im Klartext in die Scripte zu schreiben.

  2. Gegen ein XSS-Angriff und einen Output wie:
    echo ini_get(‘mysql.default_user’);
    ist man damit aber auch nur bedingt gewappnet.

  3. @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 ;-)

  4. Ein cooler Trick, werd ich mir bookmarken.

  5. 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

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS