htaccess: DirectoryIndex funktioniert nicht

Alles, was den Apache betrifft, kann hier besprochen werden.

htaccess: DirectoryIndex funktioniert nicht

Postby twalther » 25. February 2007 18:48

Hallo!

Ich möchte in einem Verzeichnis nur eine bestimmte PHP-Datei erreichbar haben. Diese soll auch automatisch aufgerufen werden, wenn man nur den Verzeichnisnamen eingibt. Zugriff auf alle anderen Dateien im Verzeichnis ist nicht gestattet.
Über das Skript kann man Dateien in das Verzeichnis hochladen und ich möchte so verhindern, das hochgeladene Skripte ausgeführt werden können, indem man sie direkt aufruft.

Die .htaccess sieht so aus:

Code: Select all
# handler.php als Index festlegen
DirectoryIndex handler.php

# Zugriff auf Dateien verbieten
Order Allow,Deny

# Zugriff auf handler.php freigeben
<Files handler.php>
Allow from all
</Files>


Das Problem: handler.php wird nicht als DirectoryIndex aufgerufen, stattdessen gibt es eine "Zugriff verweigert"-Meldung.

Hat jemand eine Idee für mich?
twalther
 
Posts: 4
Joined: 27. April 2006 19:32

Hilf dir selbst...

Postby twalther » 01. March 2007 16:32

Sssooo, ich hab des Rätsels Lösung. Hier für alle, die Ähnliches erreichen wollen (unbeantwortete Threads zu dem Thema gibt es nämlich im Netz eine ganze Menge):

Der Witz ist, dass man zusäzulich zu der Index-Datei das Verzeichnis selbst freigeben muss. Und das spricht man bekanntermaßen über "." an.

Beispiel:
Code: Select all
# No additional options are allowed
Options None

# Deny all access by default
Order Allow,Deny

# Set indexseite.php as index page
DirectoryIndex indexseite.php

# If something is accessed directly, it should be trated as text (not code)
# This is a fallback directive
ForceType text/plain

# Allow access for the directory (the index page, that is)
<Files .>
Allow from all
</Files>

# Allow access for indexseite.php
<Files indexseite.php>
ForceType application/x-httpd-php
Allow from all
</Files>


Ein Hinweis noch: Da .htaccess-Dateien auch für sämtliche Unterverzeichnisse gelten, hat man hier ein potentielles Sicherheitsproblem: Wenn es jemandem gelingt, ein Unterverzeichnis anzulegen und darin eine Datei mit dem Namen des freigegebenen Skirpts (indexseite.php) hochzuladen, wird diese beim Aufruf ausgeführt.

Gruß
twalther
twalther
 
Posts: 4
Joined: 27. April 2006 19:32


Return to Apache

Who is online

Users browsing this forum: No registered users and 272 guests