Htaccess-Einstellungen

Beitragsseiten

Für Fortgeschrittene geeignet

Vorraussetzungen

Dauer

  • ca. 30 Min.

Htaccess-Schutz für Joomla!-Verzeichnisse

Joomla! wurde nach dem sog. „MVC-Modell“ programmiert, d.h. alle Aufrufe werden zentral über eine Datei gesteuert, andere benötigte Dateien werden nur in diese zentrale Datei hineingeladen.
Genau diesen Besonderheit kann man sich bei der Absicherung von Joomla! zu Nutze machen, da außer auf diese zentrale Datei kein weiterer Zugriff auf andere Dateien nötig ist.


Einen Teil der Joomla!-Verzeichnisse kann man mit einer Htaccess-Datei wie dieser hier schützen:

<Files "*.*">
Deny from all
</Files>
Durch den Befehl „Deny from all“ wird der Zugriff auf alle Dateien, Unterverzeichnisse und das Verzeichnis, in dem diese Htaccess-Datei liegt, verweigert.


Diese Datei muss in die folgenden Verzeichnisse kopiert werden:

  • /administrator/backups
  • /administrator/cache
  • /administrator/language
  • /cache
  • /language
  • /libraries
  • /logs
  • /tmp
  • /xmlrpc*
* Sollten Sie die XML-RPC-Funktion nutzen wollen, so verzichten Sie einfach auf die „.htaccess“-Datei in diesem Verzeichnis.
  • /administrator/cache
  • /administrator/includes
  • /administrator/language
  • /administrator/manifests
  • /cache
  • /includes
  • /language
  • /libraries
  • /logs
  • /tmp
Der Administrationbereich benötigt einen besondern Schutz. Weitere Informationen finden Sie im Artikel „Adminbereich: Htaccess-Schutz“.


In einige Verzeichnisse muss eine abgewandelte Form der Htaccess-Datei hinein:

<Files "*.*">
Deny from all
</Files>

<FilesMatch "\.(js|css|png|jpg|jpeg|gif|ico|flv|swf)$">
Allow from all
</FilesMatch>
Der erste Befehl („Deny from all“) verweigert wieder den Zugriff auf alle Dateien, Unterverzeichnisse und das Verzeichnis selbst.
Im zweiten Befehl („Allow from all“) werden für die folgenden Dateitypen eine Ausnahme definiert: „js“, „css“, „png“, „jpg“, „gif“, „ico“, „flv“ und „swf“.
Sie können die erlaubten Dateitypen jederzeit und individuell pro Verzeichnis anpassen!


Diese Datei muss nun in die folgenden Verzeichnisse kopiert werden:

  • /administrator/components
  • /administrator/help
  • /administrator/images
  • /administrator/includes
  • /administrator/modules
  • /administrator/templates
  • /components
  • /images
  • /includes
  • /media
  • /modules
  • /plugins
  • /templates
  • /administrator/components
  • /administrator/help
  • /administrator/modules
  • /administrator/templates
  • /components
  • /images
  • /media
  • /modules
  • /plugins
  • /templates
Achtung!:
Manche Erweiterungen brauchen einen sog. „Direktaufruf“ über eine PHP-Datei. Leider ist dies nur durch ausgiebige Tests herauszufinden. Hat man die Datei gefunden, die direkt aufgerufen werden muss, ergänzt man eine weitere „.htaccess“-Datei im betroffenen Verzeichnis und schreibt das Folgende:
<Files dateiname.php>
Allow from all
</Files>
Beispiel: TinyMCE und JCE
Beim TinyMCE bzw. JCE muss folgende Datei im Verzeichnis „/plugins/editors/jce/tiny_mce“ (JCE) bzw. „/plugins/editors/tinymce/jscripts/tiny_mce“ (TinyMCE) angelegt werden:
Die erste Anweisung („[...] popupImage.php [...]“) muss nur beim JCE eingebaut werden!
<Files popupImage.php>
Allow from all
</Files>

<Files tiny_mce_gzip.php>
Allow from all
</Files>

<FilesMatch "\.(htm|html)$">
Allow from all
</FilesMatch>
Beispiel: TinyMCE
Nur noch beim TinyMCE muss folgende Datei im Verzeichnis „/media/editors/tinymce“ angelegt werden:
<FilesMatch "\.(htm|html)$">
Allow from all
</FilesMatch>

Weiterführende / Verwandte Artikel

Der Name Joomla!® ist ein eingetragenes Markenzeichen der Open Source Matters aus den USA und anderen Ländern. Joomla!-Security ist nicht Bestandteil der Open Source Matters oder des Joomla! Projekts.