derzeit grübel ich über ein Problem nach, für das ich nach mehreren Tagen Suche noch keine Lösung per Google finden konnte.
Wenn ich mod_rewrite verwenden möchte/muss, dann muss ich bekanntermaßen auf "FollowSymLinks" oder "SymLinksIfOwnerMatch" einschalten. Anderenfalls ist die Verwendung von mod_rewrite nicht möglich. Das habe ich inzwischen auf alle möglichen Weisen nachgestellt, egal ob das Rewriting in der vHost Config oder per htaccess vorgenommen wird. Dazu habe ich zwei Fragen und hoffe hier endlich Antworten zu finden.
1. Wo ist der Zusammenhang zwichen symbolischen Links und mod_rewrite. Warum ist die Verwendung von symbolischen Links zwingen für die Verwendung von mod_rewrite erforderlich? Ich sehe keinen Zusammenhang.
2. Wenn ich schon nicht verhindern kann, dass symbolische Links erlaubt sind, wie kann ich dann wenigstens verhindern, dass nichts außerhalb von bspw. /var/www aufgerufen wird. Aktuell habe ich verifiziert, dass wenn sich in /var/www ein symbolischer Link namens "passwd", mit Verweis auf "/etc/passwd", befindet, kann ich ihn über die Webseite verlinken und die /etc/passwd wird als Textdatei im Browser ausgegeben. Ich habe bereits versucht mit der Directory-Direktive den Zugriff auf / zu verbieten, aber entweder verstehe ich die Nutzung dieser Direktive nicht korrekt oder es funktioniert einfach nicht.
Ich gebe hier mal meine Test-vHost-Config zum Besten, mit der ich aktuell rumspiele.
- Code: Select all
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options None
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory /var/www/>
Options None
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Mit dieser Konfiguration ist es möglich im HTML-Dokument per a-Tag auf die passwd zu verlinken.
Ich bin gespannt auf eure Antworten. Besten Dank im Voraus.
Gruß
svs