You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@httpd.apache.org by Tomas Michal <To...@t-online.de> on 2005/02/14 19:39:57 UTC
Jegliche Ausführung von CGI auf bestimmte Verzeichnisse Sperren
Hallo,
ich habe folgende Anweisung :
<LocationMatch /service/webspace/.*/ebay>
Options IncludesNOEXEC -ExecCGI Indexes
</LocationMatch>
Trotz der Anweisung "-ExecCGI" können Skripte wie z.B. info.php etc. im
Verzeichniss /service/webspace/.*/ebay/ ausgeführt werden...
Wie kann ich jegliche Ausfürhung verhindern ??
Apache 2.x
Suse Linux
Bin für jede Hilfe dankbar !
Dankee !!
Tomas Michal
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------
Re: Jegliche Ausführung von CGI auf bestimmte Verzeichnisse Sperren
Posted by Tomas Michal <To...@t-online.de>.
Hallo Max,
>> <DirectoryMatch /srv/htdocs/service/webspace/.*/bilder>
>> Options IncludesNOEXEC -ExecCGI Indexes
>> </DirectoryMatch>
>>
>>
>> <LocationMatch /service/webspace/.*/bilder>
>> Options IncludesNOEXEC -ExecCGI Indexes
>> </LocationMatch>
>>
>>
>>
>> Das "DirectoryMatch" funktioniert nicht, daher es wird kein Index des
>> Verzeichnisses im Browser angezeigt.
>
>
> War wird stattdessen angezeigt?
Nun "Forbidden..." und eine Fehlermeldung kommt im ErrorLog :
Directory index forbidden by rule /srv/xxxx
Das Verzeichnis bzw. INDEX ist aber Definitiv mit DirectoryMarch bzw.
auch schon mit Directory versucht freigschaltet....
>> Das LocationMatch dagegen funktioniert...
>
>
> Hmmm. :(
>
>>
>> Ich kann mir das irgendwie nicht erklären ....;-)
>
>
> Ist http://www.xxx.de/service/webspace/benutzer/bilder vielleicht per
> Alias eingebunden und das effektive Verzeichnis ist eben nicht
> "/srv/htdocs/service/webspace/benutzer/bilder"?
Ne...
Komischerweise ist das nur mit dieser blöden Index Funktion so... Die
PHP Sperren etc. funktionieren...
Tschau Tomas
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------
Re: Jegliche Ausführung von CGI auf bestimmte Verzeichnisse Sperren
Posted by Max Dittrich <ma...@t-online.de>.
Hallo,
[..]
>
> Ja da stimme ich dir zu, jedoch habe ich hier ein Verhalten was ich mir
> nicht erklären kann.
>
> URL = http://www.xxx.de/service/webspace/benutzer/bilder
>
> <DirectoryMatch /srv/htdocs/service/webspace/.*/bilder>
> Options IncludesNOEXEC -ExecCGI Indexes
> </DirectoryMatch>
>
>
> <LocationMatch /service/webspace/.*/bilder>
> Options IncludesNOEXEC -ExecCGI Indexes
> </LocationMatch>
>
>
>
> Das "DirectoryMatch" funktioniert nicht, daher es wird kein Index des
> Verzeichnisses im Browser angezeigt.
War wird stattdessen angezeigt?
> Das LocationMatch dagegen funktioniert...
Hmmm. :(
>
> Ich kann mir das irgendwie nicht erklären ....;-)
Ist http://www.xxx.de/service/webspace/benutzer/bilder vielleicht per
Alias eingebunden und das effektive Verzeichnis ist eben nicht
"/srv/htdocs/service/webspace/benutzer/bilder"?
cu,
.max
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------
Re: Jegliche Ausführung von CGI auf bestimmte Verzeichnisse Sperren
Posted by Tomas Michal <To...@t-online.de>.
Hallo Max,
erstmal möchte ich dir für Deine Antwort danken, ich habe da einiges
herausgezogen und meinen Server auch etwas sicherer gemacht.
Zu Deinen Anmerkungen :
> - Du solltest nichts in Deinem DocRoot aufbewahren, was nicht auch
> evtl. ausgeliefert werden soll. Also warum nicht einfach die Skripte
> löschen?
Es gibt bei mir einige Userverzeichnisse im Docroot wo per Explorer (PHP
etc.) die User Dateien hochladen können. Hier besteht die Gefahr das mir
ein Benutzer einfach ein script reinladet und es dann zu Ausführung bringt.
> - Die Verwendung von <Location> sollte nur verwendet werden wenn die
> Resource nicht auf das Dateisystem abgebildet. Sonst sind <Directory>
> und <Files> immer vorzuziehen.
Ja da stimme ich dir zu, jedoch habe ich hier ein Verhalten was ich mir
nicht erklären kann.
URL = http://www.xxx.de/service/webspace/benutzer/bilder
<DirectoryMatch /srv/htdocs/service/webspace/.*/bilder>
Options IncludesNOEXEC -ExecCGI Indexes
</DirectoryMatch>
<LocationMatch /service/webspace/.*/bilder>
Options IncludesNOEXEC -ExecCGI Indexes
</LocationMatch>
Das "DirectoryMatch" funktioniert nicht, daher es wird kein Index des
Verzeichnisses im Browser angezeigt.
Das LocationMatch dagegen funktioniert...
Ich kann mir das irgendwie nicht erklären ....;-)
Tschau Tomas
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------
Re: Jegliche Ausführung von CGI auf bestimmte Verzeichnisse Sperren
Posted by Max Dittrich <ma...@t-online.de>.
Hi Tomas,
Tomas Michal wrote:
> Hi... stunden später...
Tage später ...
>
> Habe hier eine Lösung:
>
> <LocationMatch /service/webspace/.*/ebay>
> Options IncludesNOEXEC -ExecCGI Indexes
> AddHandler cgi-script .cgi .pl .php .sh .pm .phtml .com .exe
> .bat .csh .js
> </LocationMatch>
>
>
> Dann gehts... gibts etwas eleganteres ??
Eleganter im Sinne von kürzer nicht, aber ich denke mein Vorschlag setzt
eher da an wo die Ursache liegt.
Die Ausführung von PHP-Skripten kann auf 2 bzw. seit Apache2 auf 3 Wegen
erfolgen: Modul (AddType application/x-httpd-php), CGI oder Filter.
SuSE verwendet standardmässig die erste Methode (s.
/etc/apache/conf.d/php4.conf).
Um die Ausführung und zugleich aber auch die Auslieferung der Skripte
als Quelltext zu unterbinden solltest Du den Zugriff einfach unterbinden :
<Directory /path/2/docroot/service/webspace/hmmm/ebay>
<FilesMatch "\.php[345]?$">
Satisfy All
Order allow,deny
Deny from All
</FilesMatch>
RemoveType .php .php3 .php4 .php5
</Directory>
Zusätzlich wird hier der MIME-Typ (application/x-httpd-php)
zurückgesetzt, der zur Ausführung führt zurückgesetzt.
Und noch zwei Anmerkungen:
- Du solltest nichts in Deinem DocRoot aufbewahren, was nicht auch
evtl. ausgeliefert werden soll. Also warum nicht einfach die Skripte
löschen?
- Die Verwendung von <Location> sollte nur verwendet werden wenn die
Resource nicht auf das Dateisystem abgebildet. Sonst sind <Directory>
und <Files> immer vorzuziehen.
http://httpd.apache.org/docs-2.0/sections.html#mergin
Gruss,
.max
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------
Re: Jegliche Ausführung von CGI auf bestimmte Verzeichnisse Sperren
Posted by Tomas Michal <To...@t-online.de>.
Hi... stunden später...
Habe hier eine Lösung:
<LocationMatch /service/webspace/.*/ebay>
Options IncludesNOEXEC -ExecCGI Indexes
AddHandler cgi-script .cgi .pl .php .sh .pm .phtml .com .exe
.bat .csh .js
</LocationMatch>
Dann gehts... gibts etwas eleganteres ??
Tschau Tomas
Tomas Michal schrieb:
> Hallo,
>
> ich habe folgende Anweisung :
>
> <LocationMatch /service/webspace/.*/ebay>
> Options IncludesNOEXEC -ExecCGI Indexes
> </LocationMatch>
>
> Trotz der Anweisung "-ExecCGI" können Skripte wie z.B. info.php etc. im
> Verzeichniss /service/webspace/.*/ebay/ ausgeführt werden...
>
> Wie kann ich jegliche Ausfürhung verhindern ??
>
> Apache 2.x
> Suse Linux
>
> Bin für jede Hilfe dankbar !
>
> Dankee !!
>
> Tomas Michal
>
>
>
> --------------------------------------------------------------------------
> Apache HTTP Server Mailing List "users-de"
> unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
> sonstige Anfragen an users-de-help@httpd.apache.org
> --------------------------------------------------------------------------
>
>
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------