Sicherheit_Verzeichnisse

Guite edited this page Nov 15, 2014 · 2 revisions

Sichere Verzeichnisse

Abgesehen von den Standard-Berechtigungen (chmod 755 für Ordner und chmod 644 für Dateien) gibt es bei Zikula unterhalb von /pnTemp eine Handvoll beschreibbare Verzeichnisse. Ein Reihe an Problemen anderer Systeme entstanden in jüngerer Vergangenheit durch die Kombination aus Remote-Code-Injection mit beschreibbaren Verzeichnissen bzw. Dateien (Stichwort ‘chmod 777’) - im schlimmsten Fall lassen sich - neben den klassischen Defacements - so auch IRC-Bots bzw. auch Root-Kits auf dem Server installieren und nutzen.

Beschreibbare Ordner lassen sich in einem CMS aber nicht vermeiden - immerhin will man ja irgendwohin Medien hochladen bzw. die kompilierten bzw. gecachten Templates müssen abgelegt werden.

pnTemp

Um die Caching-Verzeichnisse in der Grundinstallation zu schützen, hat das Core-Team von daher alle beschreibbaren Verzeichnisse innerhalb von /pnTemp gesammelt und blockt mittels .htaccess externe Zugriffe. Zur optimalen Sicherheit kann man (soweit es der Server unterstützt) das gesamte Verzeichnis auch ausserhalb der Webroot ablegen und so komplett vor externen Zugriffe schützen: dazu muss lediglich die Pfadangabe für pnTemp in der config.php angepasst werden.

Auf eventuell beschreibbare config.php bzw. config-old.php aus der Installation wird innerhalb des sogenannten ‘Zikula Baseline Security Analyzers’ in der Administration geprüft und dies ggfs. als Warnmeldung angezeigt. Diese Warnmeldungen sollten ernst genommen werden!

Andere Verzeichnisse

Falls Drittanbietermodule (Galerien, Foren, Uploadmodule etc.) beschreibbare Verzeichnisse benötigen, sollte man diese ebenfalls nach Möglichkeit ausserhalb der Webroot ablegen bzw. zumindestens den Zugriff von aussen einschränken. Bei den Einschränkungen sind allerdings ggfs. die Anforderungen der Module zu beachten. Achtung: .htaccess-Dateien sind eine Apache-Technologie, die auf anderen Serversystemen nicht funktionieren! Allgemeine Informationen rund um die Verwendung von .htaccess finden sich z.B. unter selfhtml:htaccess.

Die restriktivste .htaccess Variante

order allow,deny
deny from all

Beispielsweise in /inludes/classes/ wird so eine .htaccess verwendet, um zu verhindern, dass von externen Domains auf die Dateien in diesem Verzeichnis direkt zugegriffen wird.

Für Bildgalerien bietet sich z.B.

SetEnvIf Request_URI "\.jpg$" object_is_jpg=jpg
SetEnvIf Request_URI "\.png$" object_is_png=png
SetEnvIf Request_URI "\.gif$" object_is_gif=gif
Order deny,allow
Deny from all
Allow from env=object_is_jpg
Allow from env=object_is_png
Allow from env=object_is_gif

an, damit zumindestens auf .jpg-, .png- und .gif-Dateien zugegriffen werden kann.

Interessant in diesem Zusammenhang ist vielleicht auch die Möglichkeit, Trafficklau durch Fremdverlinkungen zu verhindern - hierzu finden sich unter trafficklau.de weiterführende Informationen.

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.