Das OO in XOOPS
Teil 2: CMS-Serie: XOOPS vorgestellt
- CMS-Serie: XOOPS vorgestellt
- Teil 2: CMS-Serie: XOOPS vorgestellt
- Teil 3: CMS-Serie: XOOPS vorgestellt
- Teil 4: CMS-Serie: XOOPS vorgestellt
Wer das protector-Modul nutzen möchte, sollte dann noch den folgenden Code am Ende der Datei mainfile.php:
if (!isset($xoopsOption["nocommon"])&& XOOPS_ROOT_PATH != "") {
include XOOPS_ROOT_PATH."/include/
common.php";
}
wie folgt ergänzen:
include XOOPS_TRUST_PATH.'/modules/
protector/include/precheck.inc.php';
if (!isset($xoopsOption["nocommon"])&& XOOPS_ROOT_PATH != "") {
include XOOPS_ROOT_PATH."/include/
common.php";
}
include XOOPS_TRUST_PATH.'/modules/
protector/include/postcheck.inc.php';
Damit sind Sie noch nicht auf der sicheren Seite, aber schon auf dem richtigen Weg.
Weitere Sicherheitsmaßnahmen
XOOPS, wie auch generell fast alle CMS auf PHP/MySQL-Basis, speichert die Zugangsdaten zur MySQL-Datenbank im Klartext in mainfile.php direkt im Dokumentpfad des Webservers. Solange die PHP-Installation problemlos funktioniert, bleibt diese Information für Angreifer aus dem Web unzugänglich.
Sollte einmal ein Fehler auftreten und diese Datei durch PHP nicht korrekt verarbeitet werden können, würden der Benutzername und das Passwort zur MySQL-Datenbank im Klartext angezeigt werden.
Dieses Szenario besitzt generell eine sehr geringe Wahrscheinlichkeit, doch sollte es einmal eintreten, liegen mögliche Folgen auf der Hand. In diesem Fall würde, nebenbei erwähnt, auch die interne Prüfung versagen, die seit der Version 2.0.7 von XOOPS bei jedem Zugriff auf die Datei mainfile.php dem Ursprung der Nachfrage nachgeht.

Im Normalfall wird nur eine Anfrage ausgeführt, die auch wirklich von der berechtigten Domain stammt, doch Sie sollten darauf nicht vertrauen. Das Veröffentlichen der Zugangsdaten zur Datenbank ist wohl kaum in Ihrem Interesse und es ist zahlreichen Berichten zufolge bereits mehrmals vorgekommen. Mit einer zusätzlichen Sicherheitsmaßnahme können Sie auch diese Lücke leicht schließen.
Legen Sie zuerst ein neues Verzeichnis außerhalb des Dokumentenpfades des Webservers an, zum Beispiel:
/home/pfad/dblogin
Erstellen Sie dann eine neue PHP-Datei und speichern Sie darin die Zugangsdaten für die Datenbank:
<?php
$db_user = "db username";
$db_passwd = "db password";
$db_name = "db name";
?>
Achten Sie darauf, dass sich hinter dem schließenden Tag keine weiteren Zeichen (insbesondere keine Leerzeichen) befinden. XOOPS reagiert sehr empfindlich auf überflüssige Leerzeichen und bestraft Sie mit merkwürdigem Fehlverhalten wie leeren Seiten oder Fehlermeldungen des PHP-Systems. Speichern Sie die Zugriffsdaten für die Datenbank zum Beispiel unter dem Namen xoops-auth.php im zuvor erstellten Verzeichnis:
/home/pfad/dblogin
und setzen Sie dann die Zugriffsrechte wie folgt:
chmod 644 xoops-auth.php
Erstellen Sie jetzt eine Sicherheitskopie der Datei mainfile.php und modifizieren Sie gegebenenfalls die Zugriffsrechte darauf, damit Sie diese bearbeiten können:
chmod 777 mainfile.php
Danach öffnen Sie mainfile.php in einem Texteditor und den benötigten Verweis auf die soeben erstellte Datei mit Zugangsdaten zur Datenbank:
include ("/home/pfad/dblogin/
xoops-auth.php");