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
--------------------------------------------------------------------------