"deny all" für alle Dateien in einem Verzeichnis

"deny all" für alle Dateien in einem Verzeichnis

Mein Server wird stark von Bots usw. angegriffen, die nach verschiedenen Dateien suchen /cgi-bin/, search.cgi, YaBB.pl, gitweb.perl, perl, gitweb.pl, htsearch,usw.

Ich möchte für alle möglichen Dateinamen und Erweiterungen in /cgi-bin/ jeglichen Zugriff verweigern (einen 403-Forbidden-Header senden). (Dies ist ein gemeinsam genutzter Server, daher habe ich nur Zugriff auf .htaccess, nicht auf vhostsoder httpd).

In einer .htaccess in cgi-binIch habe versucht

deny from all

sowie

<FilesMatch "\.cgi?$">
        Order Allow,Deny
        Allow from All
</FilesMatch>

für bloße .cgiErweiterungen, ohne Erfolg für beides.

Wie kann ich den Zugriff für alles in verweigern /cgi-bin/?

Muss ich alle Dateinamen und Erweiterungen in einer <FilesMatchDirektive auflisten?

Antwort1

Kennen Sie die IP oder den User-Agent, der für den hohen Datenverkehr verantwortlich ist?

<Directory /cgi-bin>
  order deny,allow
  deny from all
</Directory>

Alt,

RewriteRule   "cgi(.*)"   "go_away"

Antwort2

Es gibt viele Möglichkeiten, dies zu erreichen:

  1. Verzeichnis verwenden (Apache-Version 2.2):

    <Directory /var/www/cgi-bin/>
    order deny,allow
    deny from all
    </Directory>
    
  2. Umschreibbedingung verwenden:

    RewriteCond %{REQUEST_URI} ^/cgi-bin
    RewriteRule .* - [END,R=406]
    

Sie können 406 durch jeden beliebigen Code in 403 für Verboten ändern. Die Liste der Statuscodes finden Sie hier:https://en.wikipedia.org/wiki/Liste_der_HTTP-Statuscodes

Und Sie können die Umschreibbedingung sogar erweitern, um mehr Bots abzudecken:

RewriteCond %{HTTP_USER_AGENT} ^-? [OR]
RewriteCond %{REQUEST_URI} ^/cgi [OR,NC]
RewriteCond %{REQUEST_METHOD} !^(GET|HEAD|POST)$ [OR]
RewriteCond %{REQUEST_URI} !^/
RewriteRule .* - [END,R=406]

Diese Regeln verhindern einen leeren Useragenten, Anfragen, die mit /cgi beginnen, beschränken die Methode auf GET/HEAD/POST und Anfragen, die nicht mit / beginnen

  1. Verwenden Sie den logischeren Weg:

Verschieben oder entfernen Sie cgi-bin einfach aus Ihrem Webordner, wenn Sie es nicht verwenden.

verwandte Informationen