Hallo,
zur Absicherung meines CMS möchte ich in Verzeichnissen in denen Dateien hochgeladen werden können die Ausführung von PHP, CGI, PL etc. verhindern. Hierzu habe ich in den entsprechenden Verzeichnissen eine .htaccess-Datei mit folgendem Inhalt abgelegt.
---.htaccess---
Options -ExecCGI
--- EOF ---
Dies funktioniert natürlich auch, nur scheinbar können nun auch PHP-Dateien aus anderen Verzeichnissen nicht mehr auf solch ein Verzeichnis zugreifen. Ein Beispiel hierfür ist das Upload-Verzeichnis für Artikel-Bilder meines CMS. In diesem Verzeichnis befinden sich neben der .htaccess-Datei lediglich .JPG und .GIF Bilder. Die eigentlichen PHP-Scripte die diese Bilder nun verwenden befinden sich in einem übergeordneten Verzeichnis welches natürlich nicht über eine .htaccess-Datei verfügt. Die Ausführung von PHP-Dateien in diesem übergeordneten Verzeichnis ist auch ohne Probleme möglich, nur sobald das Script die Bilder aus dem Upload-Verzeichnis verwenden will ist dies nicht mehr möglich. Das sieht nun so aus, dass in meinem Text keine Bilder mehr aus dem Upload-Verzeichnis angezeigt werden. Im HTML-Code den das PHP-Script erzeugt sind die Bilder jedoch korrekt eingebunden:
<img src="images/image1.gif"">
Nur das Bild wird eben nicht angezeigt. Wenn ich die URL von image1.gif aber direkt im Browser eingebe, funktioniert die Anzeige problemlos.
Was mache ich nun falsch bzw. wie kann man derartige Upload-Verzeichnisse effektiv schützen. Ideal wäre es, wenn man beim Aufruf einer PHP-Datei diese einfach nur als Download bekommt.
Gruß
Jochen