PHP Code in einem Verzeichnis verbieten

sulospace

searcher
21 April 2006
1.721
115
Guten Abend,

wie kann ich in einem bestimmten Unterverzeichnis meiner Domain PHP Code verbieten?

mfg knuppel
 
Apache.

Es geht um ein Image Upload Verzeichnis.Wenn dort eine PHP Datei hochgeladen wird (von einem Nutzer) dann soll diese nicht ausgeführt werden dürfen.
Natürlich lädt das Upload Programm nur Grafik Dateien hoch.Will das als weitere Sicherheitsmaßnahme.
 
Für das Verzeichnis schreibst du in deine httpd.conf ein neues <directory>-Tag. Dortdrin definierst du einfach per
Code:
[FONT=Courier New][B]AddType[/B] text/plain .php[/FONT]
, dass eine .php-Datei nur ein langweiliges Textfile is.

(Alle Angaben ohne Gewähr. Hab ich selber noch nie gemacht sowas)
 
Hm, sollte doch ansich auch über eine .htaccess gehen ... kenne mich mit dem Apache nicht so aus (mag den nicht :-? ), aber meine, da neulich zufällig was drüber gelesen zu haben.

Würde einem das relativ unflexible Rumschrauben an der Serverconfig ersparen.
Die Nachteile der htaccess-Files hat man ja so oder so, dann kann man sie ja auch nutzen ^^
 
Dürfte nich eine .htacces Datei mit dem Inhalt reichen?
Code:
Order deny,allow
Deny from all
Damit wird einfach das Verzeichniss für den direkten Aufruf gesperrt.
Kann mich aber auch täuschen.
 
@Darklord:
Dann kriegt jeder n 403, der auf irgendeine Datei drauf zugreifen will.
Also absolut kontraproduktiv, weil dann gar nix mehr geht :ugly:
 
Ich sage ja das ich mich auch täuschen kann...
Bin davon ausgegangen das die Bilder in einem seperaten Verzeichnis liegen auf in dem nichts anderes ausser die Bilder sind.
 
Wenn ich das richtig verstehe, werden eh nur Bilddateien, also gif,jpeg,png zum Upload angenommen. Für diese ist ein weiterer Eintrag in der Apacheconfig, bzw in der htacess nicht notwendig, da diese im Normalfall eh nicht über den PHP-Interpreter gejagt werden. Ein Eintrag wäre nur dann notwendig, würde du es doch parsen wollen.
Solltest halt nur sicherstellen, dass dass PHP-relevante Endungen nicht akzeptiert werden.
 
Hm, ich hab mir jetzt extra Post #1 und #3 nochmal durchgelesen. Er ist nicht gerade das beste Beispiel für einen guten, klaren Post, aber so unverständlich ist er doch eigentlich auch nicht, oder? 8O
 
So, frisch ausgeschlafen.

PHP Code verbieten kann man in dem man für das Verzeichniss in der VirtualHost Config php_admin_flag engine off einstellt. Damit wird kein PHP Code mehr geparst.

Ansonsten ist bist du mit der Lösung von TH gut bedient.
 
Das Problem ist jetzt auch das es trotzdem geschafft wird php Dateien hochzuladen und zwar mit der Endung *.jpg.php .Da hat jetzt schon mancher Hacker versucht was hochzuladen.

Das kann aber gut an dem Script liegen das ich benutze,da ich an meinen Statistiken sehe das gezielt Leute das Copyright des Scriptes bei Google suchen und dann auf meiner Seite landen.

Verdammt!
Da muss ein anderes her.
 
Das Problem ist jetzt auch das es trotzdem geschafft wird php Dateien hochzuladen und zwar mit der Endung *.jpg.php .Da hat jetzt schon mancher Hacker versucht was hochzuladen.
Der Webserver greift dann aber, da die Endung *.jpg.php keine richtige Endung is. Die Endung is am Ende und somit nur *.php, also greift der Server (ich wäre entsetzt, wenn er es nicht tut!? 8O).
Das kann aber gut an dem Script liegen das ich benutze,[...]
Prüfe in deinem Script einfach die Dateiendung, die hochgeladen wird oder noch besser: ignoriere die Dateiendung und analysiere die hochgeladene Datei und ergänze die korrekte Endung selber. Ungültige Bilder, also Dateien, die weder JPEG, GIF, noch PNG sind, kannst du somit sofort filtern.
 
Habe es nicht getestet, aber prüfe doch mal mit

PHP:
if (exif_imagetype($_FILES['userfile']['tmp_name']) == IMAGETYPE_JPEG)
{
 // gültiges JPG-Bild
}
Das ganze damit natürlich noch mit BMP, GIF
und was auch immer noch erlaubt sein soll.

Alles andere müsste damit rausfallen .......