Quellen:
Den englischen Originaltext finden Sie auf Joomla.org (http://forum.joomla.org/index.php/topic,81058.0.html).
Die Grundlage zur deutschen Übersetzung ist im Forum auf Joomla.de zu finden. Diesen Text haben wir ergänzt respektive angepasst.
Wir haben uns bemüht die Übersetzung so zu gestalten dass der Text jederzeit entsprechend dem englischen Originaltext aktualisiert werden kann. Weiter haben wir folgendes geändert:
Wichtige Information: Bitte zuerst lesen!
Allgemeine Anmerkungen
Entwicklungsserver
HTTP Server
Nutzen Sie die Einstellungsmöglichkeiten der ".htaccess"-Datei, um sich vor Angriffen von aussen zu schützen. Ein sehr gutes Tutorial finden Sie hier (in englisch). Für Joomla! 1.0.11 sind diese Einstellungen Teil der Installationsroutine. Kontrollieren Sie regelmässig die Log-Dateien auf Ihrem Server und überprüfen Sie diese auf verdächtige Zugriffe. Dabei sollten Sie sich nicht auf Zusammenfassungen oder graphische Darstellungen verlassen. Kontrollieren Sie die Server-Logdateien selber.
MySQL
Wenn Sie einen "Shared Server" nutzen und Sie die Namen von weiteren Datenbanken aufgelistet sehen können, dann sehen andere Benutzer mit ziemlicher Sicherheit auch Ihre Daten. Dies ist ein weiteres Risiko dass Unbefugte Ihre Datenbank einsehen können. Ein guter Service Provider wird immer dafür sorgen dass jeder Benutzer nur seine eigene Datenbank sehen kann.
PHP
Zurzeit werden PHP4 und PHP5 aktiv unterstützt. Stellen Sie so früh wie möglich sicher, dass Ihr gesamter PHP-Code PHP5-kompatibel ist.
Php.ini
Auf vielen Shared Hosting Systemen, bei denen Sie selber keinen Zugriff auf die eigentliche php.ini Datei haben, dürfen Sie eigene php.ini Dateien erstellen. In den meisten Fällen müssen Sie dazu Ihre php.ini Datei in alle Unterverzeichnisse Ihres Webspaces kopieren. Falls dies ein bisschen mühsam klingt: Es gibt einen frei verfügbaren Satz von Skripts, der diese Arbeit automatisch übernimmt. Das erste Skript kopiert die eigentliche php.ini in Ihr Hauptverzeichnis. Dieses kann dann getestet und angepasst werden. Das zweite Skript kopiert die neue php.ini vom Homeverzeichnis in alle Unterverzeichnisse (und überschreibt existierende php.ini Dateien).
Hier ein Link zum Thema (in englisch): Topic: secure it with php.ini http://forum.joomla.org/index.php/to...html#msg411018
Joomla! Core
Joomla! Erweiterungen (Komponenten, Module und Bots)
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
php.ini
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 einfachen Anführungszeichen, 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.
Dieser Abschnitt richtet sich an alle die auf der Suche nach der maximalen Sicherheit sind. Wie zum Beispiel e-Commerce-Seiten. Einige der angesprochenen Punkte sollten Sie allerdings nur dann ernst nehmen, wenn Sie an mehr als der durchschnittlichen "Paranoia" leiden , überdurchschnittliche Kenntnisse haben, über ausreichend Serverkontrolle verfügen und der Bastlertyp sind, der gerne experimentiert und lernt.
Was Sie in diesem Fall also unbedingt tun sollten:
Was wir Ihnen in diesem Fall empfehlen:
Optional wäre da noch [Anmerkung: Sie müssen natürlich in diesem Fall die Anpassung der Pfade bei jedem Joomla Update erneut vornehmen]:
Entwickler von Erweiterungen
Den englischen Originaltext finden Sie auf Joomla.org (http://forum.joomla.org/index.php/topic,81058.0.html).
Die Grundlage zur deutschen Übersetzung ist im Forum auf Joomla.de zu finden. Diesen Text haben wir ergänzt respektive angepasst.
Wir haben uns bemüht die Übersetzung so zu gestalten dass der Text jederzeit entsprechend dem englischen Originaltext aktualisiert werden kann. Weiter haben wir folgendes geändert:
- Zum besseren Verständnis ist der Text nach den jeweiligen Möglichkeiten unterteilt (Shared- oder Root-Server).
- Links auf kommerzielle Anbieter wurden entfernt. Entsprechende Links sind auf die deutschsprachige Suche angepasst, soweit dies möglich war.
- Einige Anmerkungen entsprechen der Auffassung der deutschen Übersetzer und sind im englischen Originaltext nicht zu finden.
Wichtige Information: Bitte zuerst lesen!
- In diesem Artikel finden Sie: einen schnellen Überblick zu Sicherheitsfragen in Zusammenhang mit Joomla! mit weiterführenden Links.
- Was Sie in diesem Artikel nicht finden: eine komplette Antwortliste auf alle möglichen Sicherheitsfragen; einen Ersatz für jahrelange, harte Arbeit, gründliche Studien und Erfahrung.
Suche im Internet kreativ eingesetzt, damit finden Sie sehr viele Antworten. Es gibt beispielsweise immer wieder Fragen zu SSH. Eine Suche (zum Beispiel mit Google) zum Thema "SSH" liefert viele gute Links. - Wie Sie helfen können: Joomla! ist ein Community-Projekt und wird nach Bedarf aktualisiert. Wenn Sie Fehler finden, bitte teilen Sie uns diese mit. Korrekturen sind willkommen und können in folgendem Topic des offiziellen Forums auf Joomla.org veröffentlicht werden.
Allgemeine Anmerkungen
- PHP, MySQL und viele weitere Basis-Komponenten wurden ursprünglich nur für Apache-Server konzipiert, wo sie auch am besten funktionieren. Wenn es irgendwie möglich ist, vermeiden Sie andere Server.
- Ändern Sie regelmässig Ihre Passwörter und vergeben Sie diese eindeutig. Das heisst, wählen Sie nicht für mehrere Logins das gleiche Passwort. Benutzen Sie dafür am besten eine zufällige Komination aus Buchstaben, Zahlen oder Symbolen. Vermeiden Sie es, einzelne Namen oder Wörter zu verwenden die zum Beispiel in einem Wörterbuch zu finden sind. Benutzen Sie nie die Namen von Verwandten, Haustieren oder ähnlichem.
- Wenn Sie einen "Shared Hosting Provider" nutzen stellen Sie bitte sicher dass keine anderen Benutzer auf Ihrem Server Ihre Dateien sehen können, beispielsweise durch "Shell Accounts" oder CPanels.
- Verlassen Sie sich nie darauf dass andere Ihre Backups machen. Viele Serviceprovider sichern sich vertraglich ab. Sichern Sie regelmässig persönlich Ihre Daten und vergessen Sie die Datenbank nicht. Vor allem vor tiefgreifenden Änderungen empfehlen wir immer Backups zu machen.
- Benutzen Sie Systeme mit denen Sie das Eindringen mittels bösartiger HTTP-Anfragen verhindern können.
Entwicklungsserver
- Installieren Sie sich lokal einen Server für die Entwicklung, nehmen Sie die Upgrades zuerst hier vor und testen Sie diese, bevor Sie das System auf dem Produktionsserver einspielen. Auf der Website von "Apache Friends" finden Sie die Lösung XAMPP; weitere Infos hiezu finden Sie auf "www.apachefriends.org/de".
- Nutzen Sie für eine schnellere und professionellere Entwicklung eine sogenannte IDE
- Einige ISPs bieten Entwicklungssserver inklusive Backup an.
HTTP Server
Nutzen Sie die Einstellungsmöglichkeiten der ".htaccess"-Datei, um sich vor Angriffen von aussen zu schützen. Ein sehr gutes Tutorial finden Sie hier (in englisch). Für Joomla! 1.0.11 sind diese Einstellungen Teil der Installationsroutine. Kontrollieren Sie regelmässig die Log-Dateien auf Ihrem Server und überprüfen Sie diese auf verdächtige Zugriffe. Dabei sollten Sie sich nicht auf Zusammenfassungen oder graphische Darstellungen verlassen. Kontrollieren Sie die Server-Logdateien selber.
MySQL
Wenn Sie einen "Shared Server" nutzen und Sie die Namen von weiteren Datenbanken aufgelistet sehen können, dann sehen andere Benutzer mit ziemlicher Sicherheit auch Ihre Daten. Dies ist ein weiteres Risiko dass Unbefugte Ihre Datenbank einsehen können. Ein guter Service Provider wird immer dafür sorgen dass jeder Benutzer nur seine eigene Datenbank sehen kann.
PHP
Zurzeit werden PHP4 und PHP5 aktiv unterstützt. Stellen Sie so früh wie möglich sicher, dass Ihr gesamter PHP-Code PHP5-kompatibel ist.
Php.ini
Auf vielen Shared Hosting Systemen, bei denen Sie selber keinen Zugriff auf die eigentliche php.ini Datei haben, dürfen Sie eigene php.ini Dateien erstellen. In den meisten Fällen müssen Sie dazu Ihre php.ini Datei in alle Unterverzeichnisse Ihres Webspaces kopieren. Falls dies ein bisschen mühsam klingt: Es gibt einen frei verfügbaren Satz von Skripts, der diese Arbeit automatisch übernimmt. Das erste Skript kopiert die eigentliche php.ini in Ihr Hauptverzeichnis. Dieses kann dann getestet und angepasst werden. Das zweite Skript kopiert die neue php.ini vom Homeverzeichnis in alle Unterverzeichnisse (und überschreibt existierende php.ini Dateien).
Hier ein Link zum Thema (in englisch): Topic: secure it with php.ini http://forum.joomla.org/index.php/to...html#msg411018
Joomla! Core
- Informieren Sie sich selbst über Joomla! 1.5. Dieses neue Release beinhaltet einige Verbesserungen.
- Joomla! 1.5 Entwickler Status: http://dev.joomla.org/content/view/1139/82/
- Machen Sie immer einen Upgrade auf die aktuellste, stabile Version.
- Topic: How to patch Joomla! 1.0.x to 1.0.x? http://forum.joomla.org/index.php/topic,33226.0.html Anmerkung: was findet man dort?
- Laden Sie Joomla! nur von den offiziellen und vertrauenswürdigen Seiten herunter, z.B. http://forge.joomla.org/sf/sfmain/do...rojects.joomla
- Abonnieren Sie die Joomla! Sicherheitsankündigungen des offiziellen Joomla! Forums oder lesen Sie diese regelmässig. In englisch auf joomla.org oder .........
- Wenn Sie glauben, ein Sicherheitsrisiko entdeckt zu haben, so berichten Sie dieses bitte an das Entwicklerteam: Wie das geht, können Sie hier nachlesen: http://dev.joomla.org/content/view/1450/89/.
- Entfernen Sie alle Templates, die für Ihre Installation nicht benötigt werden. Vor allem packen Sie keinerlei sicherheitsrelevanten Code in Ihre Template Dateien Mehr Information dazu hier http://forum.joomla.org/index.php/to...html#msg430051 im offiziellen Joomla! Forum
- Editieren Sie die Datei "globals.php" um die Joomla! "register_globals Emulation" zu deaktivieren. Auch wenn diese Emulation sicherer ist als die PHP "register_globals Anweisung"; ist es immer noch am besten "register_globals" generell zu deaktivieren.Hier die korrekten Einstellungen für die Joomla! register_globals Emulation:
define( 'RG_EMULATION', 0 );
Bitte beachten Sie: einige Erweiterungen funktionieren eventuell nicht mehr richtig, nachdem Sie diese Einstellung vorgenommen haben. - Wenn Ihre Seite konfiguriert ist und stabil läuft versehen Sie so viele Verzeichnisse und Dateien wie möglich mit einem Schreibschutz. Setzen Sie die Rechte von 755 auf 644 zurück. Überprüfen Sie bitte ob Ihre Joomla! Installation noch funktioniert - diese Einstellung ist serverabhängig
- Es gibt unter den Einstellungen Site - GlobalConfiguration - Server ein Feature, das alle Ihre Verzeichnisse und Dateien auf den von Ihnen gewünschten Rechtestatus setzt.
Beachten Sie bitte: dies ist nicht bei allen Servern möglich. Einige Drittanbieter-Erweiterungen könnten mit dieser Einstellung nicht mehr richtig funktionieren. Testen Sie also vorher. - Hier einige Links zu weiteren Informationen (in englisch). Es geht dabei um eine Erweiterung, deren Konfigurationsfile sich mit dieser Einstellung nicht entsprechend setzen lässt:
http://help.joomla.org/content/view/41/132/.
http://forum.joomla.org/index.php/topic,24108.0.html
http://forum.joomla.org/index.php?topic=87719 - Achtung: Wenn Sie irgendwann weitere Erweiterungen installieren möchten, müssen Sie die Berechtigungen zurücksetzen. Bitte beachten Sie auch, dass die Checkbox zum Überschreiben des Schreibschutzes der configuration.php Datei auf manchen Servern ausgegraut ist. Sie müssen in diesem Fall die Berechtigungen manuell setzen und natürlich auch nach den Anpassungen wieder zurück.
Joomla! Erweiterungen (Komponenten, Module und Bots)
- Entfernen Sie alle Joomla! Erweiterungen, die register_globals ON erfordern
- Laden Sie Ihre Erweiterungen nur von vertrauenswürdigen Seiten herunter. Die offizielle Definition für vertrauenswürdig ist: Seiten, denen Sie selbst vertrauen
- Vor der Installation einer Erweiterung sollten Sie die offizielle Liste der unsicheren Drittanbieter Erweiterungen lesen: http://forum.joomla.org/index.php/topic,79477.0.html
- Liebe Benutzer, Achtung! Drittanbieter Erweiterungen gibt es in jeder nur erdenklichen Qualität und in jedem nur erdenklichen Alter. Auch wenn es den Joomla! Entwickler- und Programmierstandard gibt, so werden die Erweiterungen, die auf der offiziellen Joomla! Seite gelistet sind, keiner Qualitätsprüfung unterzogen. Testen Sie also alle Erweiterungen, bevor Sie damit auf eine Produktionsseite gehen.
- Machen Sie regelmäßige Backups Ihrer FTP-Daten und auch der Datenbank, insbesondere bevor Sie neue Erweiterungen installieren.
- Informieren Sie sich regelmässig über die Sicherheitsthemen auf der offiziellen Joomla! Seite unter http://forum.joomla.org/index.php/board,296.0.html
- Entfernen Sie alle unbenutzten Joomla! Erweiterungen und kontrollieren Sie insbesondere auch, ob entsprechende Verzeichnisse und Dateien gelöscht wurden.
- Wenn Ihre Seite gehackt wurde vergewissern Sie sich genau, ob sie wirklich gehackt wurde und lesen Sie hier (in englisch): http://forum.joomla.org/index.php/to...html#msg289697
- Bevor Sie irgendwelche Änderungen vornehmen, machen Sie eine Liste der Dateien sortiert nach Änderungsdatum
- Es gibt ein Skript, das dies für Sie erledigt: http://www.joomlation.eu/index.php?o...17&I temid=35
- Kontrollieren Sie die originalen Logdateien auf Ihrem Server hinsichtlich verdächtiger Anfragen und Zugriffe
- Löschen Sie alle Dateien und Verzeichnisse, auch alle Unterverzeichnisse und alle Dateien sowie die Datenbank mit Tabellen; kontrollieren Sie sorgfältig ob auch wirklich alles gelöscht ist.
- Dann erst installieren Sie alles neu, auf Basis Ihrer Backup Dateien.
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
- Installieren Sie alle offiziell veröffentlichten Sicherheits-Patches so bald wie möglich.
- 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 folgende 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 sicher sind, dass alle PHP Dateien auf Ihrem Server fehlerfrei programmiert sind und die 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 einfachen Anführungszeichen, 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/
Dieser Abschnitt richtet sich an alle die auf der Suche nach der maximalen Sicherheit sind. Wie zum Beispiel e-Commerce-Seiten. Einige der angesprochenen Punkte sollten Sie allerdings nur dann ernst nehmen, wenn Sie an mehr als der durchschnittlichen "Paranoia" leiden , überdurchschnittliche Kenntnisse haben, über ausreichend Serverkontrolle verfügen und der Bastlertyp sind, der gerne experimentiert und lernt.
Was Sie in diesem Fall also unbedingt tun sollten:
- Engagieren Sie einen Joomla! Profi, der sich mit Sicherheitsfragen auskennt, um Ihre Seitenkonfiguration überprüfen zu lassen.
- Gehen Sie nicht auf einen Shared Server. Einige Experten sind sich diesbezüglich uneins.
- Egal wie Ihr Server konfiguriert ist - stellen Sie sicher, dass nur Sie und Personen denen Sie vertrauen auf Ihren Server Zugriff haben.
- Nutzen Sie SSL-Verbindungen für Login und administrative Funktionen und natürlich auch für vertrauliche Kundeninformationen und Kundendaten. Wenn Sie Ihre Kundendaten nicht sichern, sollten Sie wenigstens einen exzellenten Anwalt haben.
- Trennen Sie Entwicklungs- und Produktionsumgebung und deaktivieren bzw. entfernen Sie administrative Funktionen innerhalb des Frontends. Nutzen Sie dafür lieber Sub-Domains. Diese eignen sich hervorragend dafür.
Was wir Ihnen in diesem Fall empfehlen:
- Verschieben Sie Core Dateien, die keine Schreibrechte benötigen, nach ausserhalb des Webroot-Verzeichnisses und ändern Sie entsprechend die Path-Variablen oder nutzen Sie Symlinks. Beispiele hierfür sind z.B. die Konfigurationsdatei oder das Administrationsverzeichnis.
- Um den direkten URL Zugriff auf Erweiterungen zu vermeiden, editieren Sie die Apache Konfiguration .htaccess oder verschieben Sie auch diese Dateien nach ausserhalb Ihres Webrootverzeichnisses und ändern Sie wieder entsprechend die Path-Variablen.
Optional wäre da noch [Anmerkung: Sie müssen natürlich in diesem Fall die Anpassung der Pfade bei jedem Joomla Update erneut vornehmen]:
- Stellen Sie sicher, dass sich alle beschreibbaren Verzeichnisse außerhalb des Webroot-Verzeichnisses liegen und ändern Sie wieder entsprechend die Path-Variablen. Kontrollieren Sie auch Drittanbieter-Erweiterungen hinsichtlich eigener Download-Verzeichnisse oder beschreibbarer Dateien.
- Legen Sie das gesamte Joomla! Verzeichnis bis auf die Dateien, die direkten httpd Zugriff benötigen, außerhalb des Webroot Verzeichnisses und ändern Sie wieder entsprechend die Path-Variablen.
- Hat das schon mal jemand ausprobiert?
- programmieren Sie Erweiterungen zur besseren Kontrolle über den Namensraum in PHP lieber objektorientiert
- Blockieren Sie erweiterungsübergreifende Datenbank-Zugriffe. Viel Glück dabei! Bitte lassen Sie uns eine gute Lösung wissen.
- Erstellen Sie eine separate Datenbank und MySQL-Accounts für vertrauenswürdige Erweiterungen
- Erstellen Sie eine weitere Datenbank mit weniger Zugriffsrechten für den Zugriff durch weniger vertrauenswürdige Erweiterungen (im Grunde also alle)
- Wenn Sie den Script-Kiddies nicht sagen möchten, welche URL vor unberechtigtem Zugriff gesichert werden soll, können Sie versuchen, auf eine 404 Error Seite weiterzuleiten. Dies wird ihnen anzeigen, dass die URL nicht gültig ist, oder zumindest eher als dass sie existiert, aber zusätzlich besondere Schutzmaßnahmen benötigt. (Vergessen Sie nicht, die 404 Fehlerseite zu erstellen!)
- Wenn Sie den Script Kiddies nicht sagen möchten, welche URL vor unberechtigtem Zugriff gesichert werden soll, können Sie versuchen, auf eine 404 Error Seite weiterzuleiten. Dies wird ihnen anzeigen, dass die URL nicht gültig ist, oder zumindest eher als dass sie existiert, aber zusätzlich besondere Schutzmaßnahmen benötigt. (Vergessen Sie nicht, die 404 Fehlerseite zu erstellen!)
- Im offiziellen Joomla Forum stellt einer der User klar:
Wenn zum Hacken der Seite etwas anderes als den Browser verwendet wird, so wird das Skript header() schlicht ignorieren und der restlichen Code ausgeführt. Wenn Sie diese Umleitung wirklich haben möchten, müssen Sie eine EXIT Anweisung hinzufügen. Im Beispiel unten werden beide Methoden verwendet. Dies ist natürlich der "Overkill", aber wird sicherlich standhalten.
PHP-Code:
if(!defined( '_VALID_MOS' )){
header("Location: http://www.mysite.com/404.html/");
exit;
}
defined( '_VALID_MOS' ) or die("Restricted access");
Entwickler von Erweiterungen
- Folgen Sie den Joomla! Programmierstandards (auf der offiziellen Seite http://forum.joomla.org/index.php/board,164.0.html, siehe dazu auch auf der Hilfeseite von Joomla.de unter http://www.joomla.de/hilfe_gtt/jooml...ler_standards/)
- Arbeiten Sie folgende Dokumente durch, dort lesen Sie, von Joomla! Core Entwicklern geschrieben, wie Sie eine sichere Komponente erstellen: http://forum.joomla.org/index.php/topic,78781.0.html
- Entwickeln Sie lokal und kopieren Sie die Erweiterung dann auf einen Produktionsserver, wenn die Testphase vollständig abgeschlossen ist
- Nutzen Sie XAMPP für Ihre lokale Installation
Diese Arbeit wird ständig aktualisiert. Korrekturen und Ergänzungen werden dankend angenommen.



Montag 28 Juli, 2008
www.apachefriends.org/de