Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP blocken?
Firefall
27.05.2009, 08:27
Ich habe auf meiner Seite einen public FTP am laufen, wo meine User halt ihre Dateien hochladen und austauschen können. Jetzt wäre es schön, wenn man diese Dateien noch direkt einbinden könnte, also auch über HTTP darauf zugreifen. Per Default geht das ja, aber es ist gefährlich, weil ja die User z.b. .php hochladen können. Bis jetzt habe ich, um diese Sicherheitslücke zu schliessen, einfach mal ne HTACCESS gemacht mit DENY FROM *. Dann ist aber nix mit HTTP Zugriff. Geht's eleganter? Kann ich einzelne Dateierweiterungen ausschliessen? PS. Ich will NICHT ein Script davorhängen à la getfile.php?f=myfolder/myfile.jpg
Hallo,
http://www.google.de/search?q=php+deaktivieren&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:de:official&client=firefox-a
1. Treffer
http://www.issociate.de/board/post/402085/PHP_fuer_ein_Directory_deaktivieren.html
>>> php_admin_flag engine off
>>> In der httpd.conf/Vhost Konfig.
>
>> Weißt Du zufällig auch, ob ich das nur für ein Directory einstellen kann?
>> (Der Rest des Vhosts soll weiterhin PHP nutzen dürfen - nur in diesem einen
>> Verzeichnis soll das deaktiviert werden.)
>
> Ja funktioniert auch nur für ein Directory.
Funktioniert aber nur weil bei dir PHP als Modul laueft. Bei einer CGI
Installation haette man da anders vorgehen muessen.
Wenn du keine CGI Installation hast, sollte das funktionieren.
Firefall
27.05.2009, 10:43
Hallo,
http://www.google.de/search?q=php+deaktivieren&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:de:official&client=firefox-a
1. Treffer
http://www.issociate.de/board/post/402085/PHP_fuer_ein_Directory_deaktivieren.html
Wenn du keine CGI Installation hast, sollte das funktionieren.Danke für den hilfreichen Tipp, habe ich aber... Wird aber bei mir nicht verwendet. Ich glaube sogar, CGI Scirpts kann ich über das Admin Panel konfigurieren, so dass sie nur in einem bestimmten Verzeichnis (cgi-bin) ausgeführt werden dürfen. Ich prüfe das noch!
Es geht um die cgi-php Installation. Nicht um das pure cgi.
Wenn du php "normal" installiert hast (apt-get install apache2 php5 etc), ist es in der Regel als modul und nicht als cgi-php installiert.
Firefall
27.05.2009, 13:40
Es geht um die cgi-php Installation. Nicht um das pure cgi.
Wenn du php "normal" installiert hast (apt-get install apache2 php5 etc), ist es in der Regel als modul und nicht als cgi-php installiert.
Achso... Das weiss ich nicht, keine Ahnung wie ich das rausfinde... Es handelt sich drum um einen gemieteten Webspace, habe das nicht selber installiert.
Frag doch mal beim Support nach.
Müsste alternativ in einer phpinfo() stehen.
Firefall
29.05.2009, 23:58
Müsste alternativ in einer phpinfo() stehen.
http://web243pluto.dynamic-kunden.ch/phpInfo.php
Bei Server API steht CGI... Ist es das?
Jup, das sollte es sein. Sieht ganz danach aus, als hättest du eine CGI-Installation von PHP am Laufen.
Firefall
30.05.2009, 16:15
Jup, das sollte es sein. Sieht ganz danach aus, als hättest du eine CGI-Installation von PHP am Laufen.
Ok also folglich hab ich ein Problem :D
Ich weiß nicht, inwieweit du deinen Pub bezüglich Berechtigungen konfigurieren kannst, aber wäre es nicht möglich, was mit einer (von Gästen) nicht editierbaren .htaccess, die dafür sorgt, dass .php-Files in dem Ordner nicht interpretiert werden? Schaue gleich noch mal nach Beispielen; habe da was in Erinnerung.
Edit: Wäre vielleicht mit einer Kombination aus der <FilesMatch>-Direktive (http://httpd.apache.org/docs/2.2/mod/core.html#filesmatch) und der ForceType-Direktive (http://httpd.apache.org/docs/2.2/mod/core.html#ForceType) möglich. Alternativ könntest du mit FilesMatch und "deny from all" arbeiten.
Firefall
30.05.2009, 19:36
Ich weiß nicht, inwieweit du deinen Pub bezüglich Berechtigungen konfigurieren kannst, aber wäre es nicht möglich, was mit einer (von Gästen) nicht editierbaren .htaccess, die dafür sorgt, dass .php-Files in dem Ordner nicht interpretiert werden? Schaue gleich noch mal nach Beispielen; habe da was in Erinnerung.
Edit: Wäre vielleicht mit einer Kombination aus der <FilesMatch>-Direktive (http://httpd.apache.org/docs/2.2/mod/core.html#filesmatch) und der ForceType-Direktive (http://httpd.apache.org/docs/2.2/mod/core.html#ForceType) möglich. Alternativ könntest du mit FilesMatch und "deny from all" arbeiten.
Okay gefällt mir! Dann wäre mein Resultat sowas?
<FilesMatch "\.(php.*|cgi.*)$">
deny from all
</FilesMatch>
Oder einfach ein Set/Addhandler auf die extension:
SetHandler default-handler .php .php5 .php4 .cgi
Dann bleiben die Dateien sogar herunterladbar ;)
Siehe Apache Doku [1] (http://httpd.apache.org/docs/2.0/mod/mod_mime.html#addhandler) [2] (http://httpd.apache.org/docs/2.0/mod/core.html#sethandler) [3] (http://httpd.apache.org/docs/2.0/handler.html)
Bei einem Anbieter ist eigentlich sicher davon auszugehen dass er PHP als CGI einbindet, damit er eine Rechtetrennung über suexec von Apache verwenden kann. (Und das ist in Multiuser/Hosting Umgebungen ein muss)
Firefall
30.05.2009, 21:51
Oder einfach ein Set/Addhandler auf die extension:
SetHandler default-handler .php .php5 .php4 .cgi
Dann bleiben die Dateien sogar herunterladbar ;)
Siehe Apache Doku [1] (http://httpd.apache.org/docs/2.0/mod/mod_mime.html#addhandler) [2] (http://httpd.apache.org/docs/2.0/mod/core.html#sethandler) [3] (http://httpd.apache.org/docs/2.0/handler.html)
Bei einem Anbieter ist eigentlich sicher davon auszugehen dass er PHP als CGI einbindet, damit er eine Rechtetrennung über suexec von Apache verwenden kann. (Und das ist in Multiuser/Hosting Umgebungen ein muss)
Tu ich das auch in die .htaccess?
Nachdem htacces als Kontext der Direktiven erwähnt wird - ja ;) http://httpd.apache.org/docs/2.0/mod/directive-dict.html#Context
Firefall
30.05.2009, 22:04
Nachdem htacces als Kontext der Direktiven erwähnt wird - ja ;) http://httpd.apache.org/docs/2.0/mod/directive-dict.html#Context
Okay ich schreib also ne .htaccess mit
SetHandler default-handler .php .php5 .php4 .cgi
Und tu die in den Parentfolder des Uploadordners (Sonst kann man ja die HTACCESS über FTP löschen). Was ich jetzt bekomme, ist Internal Server Error. Auf Log hab ich keinen Zugriff. :(
Hm ohne logs ist ja sowas immer bißchen nervig zu "debuggen".
Du kannst auch einfach mal "RemoveHandler .php" versuchen, daran habe ich vorhin gar nicht gedacht. Ich weiß jetzt nicht genau wie das alles bei deinen Rechten usw. eingestellt ist, aber wenn du die .htaccess Datei mit entsprechenden Datei Rechten einstellst sollte nicht jeder sie löschen dürfen.
Firefall
30.05.2009, 22:26
Hm ohne logs ist ja sowas immer bißchen nervig zu "debuggen".
Du kannst auch einfach mal "RemoveHandler .php" versuchen, daran habe ich vorhin gar nicht gedacht. Ich weiß jetzt nicht genau wie das alles bei deinen Rechten usw. eingestellt ist, aber wenn du die .htaccess Datei mit entsprechenden Datei Rechten einstellst sollte nicht jeder sie löschen dürfen.
Ich glaub soviel Zugriff hab ich nicht, das ich da für FTP Benutzer Rechte anlegen kann und so. Ich kann nur Zusätzliche Benutzer anlegen über n Webinterface und deren PW ändern... Aber das mit dem RemoveHandler probier ich morgen aus. Ich muss ja nicht noch was drum rum schreiben oder? Irgendwie <Location> oder so?
Ansich sollte das automagisch fürs aktuelle Verzeichnis und die darunterliegenden gelten.
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.