http-Server:
• Konfigurieren Sie die Apache Module mod_security und mod_rewrite, um PHP Angriffe zu verhindern.
MySQL:
• Stellen Sie sicher, dass der Joomla! MySQL Account nur eingeschränkte Rechte besitzt. Die Standardeinstellungen von MySQL sind unsicher, eine sorgfältige Konfiguration ist daher dringend erforderlich.
• Näheres dazu in der MySQL Dokumentation http://dev.mysql.com/doc/refman/4.1/...rivileges.html
PHP
• Spielen Sie alle von den Anbietern offiziell veröffentlichten Sicherheits-Patches so bald wie möglich ein.
• Halten Sie Ihr PHP serverseitig aktuell
• Benutzen Sie Werkzeuge, um automatisierte SQL Angriffe gegen PHP Anwendungen zu simulieren.
• Nähere Informationen unter Wikipedia: SQL-Injektion http://de.wikipedia.org/wiki/SQL-Injektion
• Folgen Sie dem Prinzip des "geringsten Zugriffsrechts" auf Ihr PHP, indem Sie Werkzeuge wie PHPsuExec, php_suexec orsuPHP von suPHP einsetzen
php.ini
• Es gibt viele Methoden, Ihre Website durch die Konfiguration der php.ini sicherer zu machen. Der folgender Artikel (geschrieben von Beat, Q&T Workgroup Member) gibt Ihnen einen Überblick über die einzelnen Methoden sortiert nach der Reihenfolge, in der sie angewandt werden sollten: Sichern Sie Ihre Site mit php.ini http://forum.joomla.org/index.php/to...html#msg455771
• Arbeiten Sie die Liste der php.ini Anweisungen auf der offiziellen PHP Website durch. http://php.net/
• Setzen Sie register_globals auf OFF: Diese Anweisung definiert, ob die EGPCS (Environment, GET, POST, Cookie, Server) Variablen als globale Variablen registriert werden oder nicht.
• Nutzen Sie disable_functions, um gefährliche PHP Funktionen, die von Ihrer Seite nicht benötigt werden, auszuschalten.
• Deaktivieren Sie allow_url_open. Diese Funktion ermöglicht es fopen Wrappern, auf URL Objekte wie Dateien zuzugreifen. Standard Wrapper werden für den Zugriff auf Remote Dateien, die das FTP oder HTTP Protokoll nutzen, eingesetzt. Einige Erweiterungen wie beispielsweise zlib können weitere Wrapper registrieren. Bitte beachten Sie: Dies kann aus Sicherheitsgründen ausschließlich in der php.ini gesetzt werden. [Anmerkung: mehr zu fsock open auf der php.net Seite als Alternative zu fopen: http://de.php.net/fsockopen]
• Passen Sie die magic_quotes_gpc Anweisung an Ihre Bedürfnisse an. Sie sollte auf OFF gesetzt sein, wenn Sie sich sicher sind, dass alle PHP Dateien auf Ihrem Server fehlerfrei programmiert sind und Benutzerdaten korrekt interpretiert werden. Sie sollte auf ON gesetzt sein, wenn Sie alte PHP3 und PHP4 Skripts laufen haben. Dazu gehören beispielsweise zu viele der Drittanbieter Komponenten. Joomla! 1.0.11 benachrichtigt Sie im Backend, wenn magic_quotes_gpc auf OFF gesetzt ist. Diese Sicherheitsmaßnahme wurde von den Joomla! Entwicklern zum Schutz vor Angriffen auf unsichere Drittanbieter Komponenten eingeführt. Das Joomla! Framework an sich wird in jedem Fall so weit wie möglich sicher gehalten.
Die Hintergründe zu magic_quotes_gpc. Was passiert?
magic_quotes_gpc setzt den magic_quotes Status für GPC(Get/Post/Cookie) Operationen. Falls magic_quotes_gpc auf ON gesetzt ist, werden alle Einfach Anführungsstriche, Anführungsstriche und Backslashes sowie Nullen automatisch durch einen führenden Backslash ergänzt.
Einige erfahrene Benutzer befürworten magic_quotes_gpc ON als zusätzliche Sicherheitsmaßnahme. Andererseits weist das offizielle PHP Handbuch auf folgendes hin:
"Die Einstellung magic_quotes_gpc OFF ist deutlich vorzuziehen, stattdessen sollten die Daten, falls nötig, zur Laufzeit mit einem Escape Character versehen werden".
PHP6 wird im Übrigen nur mit der Einstellung magic_quotes_gpc OFF lauffähig sein.
Da es in Zukunft einige technische Gründe geben wird, die die Einstellung magic_quotes_gpc immer wichtiger machen, könnten Sie jetzt bereits damit anfangen, Ihre Seiten entsprechend anzupassen.
• Wenn Ihre Seite einmal vollständig konfiguriert ist, können Sie damit beginnen, safe_mode zu aktivieren und korrekt zu konfigurieren. Beachten Sie bitte, dass safe_mode ON das Joomla! Installationskript beeinträchtigt. Für weitere Installationen kann safe_mode zeitweise ausgeschaltet werden, vergessen Sie aber nicht, ihn später wieder zu reaktivieren.
• Beachten Sie, dass einige erfahrene Benutzer der Meinung sind, ein aktivierter safe_mode sei nicht nötig, falls andere sicherheitsrelevante Überlegungen vorgenommen werden:
PHP Sicherheits- und Safe Mode Konfigurationsanweisungen
http://us3.php.net/manual/de/feature...#ini.safe-mode
PHP Funktionen, die mit safe_mode OFF nur eingeschränkt oder überhaupt nicht funktionieren
http://us3.php.net/manual/en/feature....functions.php [Anmerkung: dieser Link ist offenbar nur englisch verfügbar]
• open_basedir (dies sollte aktiviert und korrekt konfiguriert sein)
Dies beschränkt den Zugriff durch PHP auf spezielle Verzeichnisse wie auch auf die Dateien dieses Verzeichnisses. Diese Einstellung hat nichts damit zu tun, ob safe_mode aktiviert oder deaktiviert ist. Bei der Beschränkung des Zugriffs handelt es sich nämlich zunächst um ein Wildcard, nicht einen einzelnen Verzeichnisnamen. Das bedeutet: open_basedir = "/dir/incl" schließt den Zugriff auf Verzeichnisse wie "dir/includes" und "dir/incls" mit ein. Möchten Sie den Zugriff auf ein ganz spezielles Verzeichnis beschränken, so beenden Sie die Anweisung mit einem Slash.
• PHP Sicherheits- und Safe Mode Konfigurationsanweisungen
http://us3.php.net/manual/de/feature...#ini.safe-mode
• Hier einige Beispielanweisungen zu den oben genannten Überlegungen:
PHP-Code:
register_globals = 0
disable_functions = show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open
allow_url_fopen = 0
magic_gpc_quotes = 0
safe_mode = 1
open_basedir = /dir/to/include/change_me/
Lesezeichen