«запретить все» для всех файлов в каталоге

«запретить все» для всех файлов в каталоге

На мой сервер активно нападают боты и т. п., которые ищут различные файлы в формате /cgi-bin/, например, search.cgi, YaBB.pl, gitweb.perl, perl, gitweb.pl, htsearch,и так далее.

Я хочу запретить любой доступ (отправить заголовок 403 Forbidden) для всех возможных имен файлов и расширений в /cgi-bin/ . (Это общий сервер, поэтому у меня есть доступ только к .htaccess, а не vhostsк или httpd).

В .htaccess cgi-binя пробовал

deny from all

а также

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

только для .cgiпродлений, безуспешно ни в том, ни в другом случае.

Как мне запретить доступ ко всему в /cgi-bin/?

Нужно ли перечислять все имена файлов и расширения в <FilesMatchдирективе?

решение1

Знаете ли вы IP-адрес или user-agent, который является причиной высокого трафика?

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

Альт,

RewriteRule   "cgi(.*)"   "go_away"

решение2

Есть много способов добиться этого:

  1. Использование каталога (версия Apache 2.2):

    <Directory /var/www/cgi-bin/>
    order deny,allow
    deny from all
    </Directory>
    
  2. Используя условие перезаписи:

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

Вы можете изменить 406 на любой код, который вам нужен, например 403 (запрещено), список кодов статуса можно найти здесь:https://en.wikipedia.org/wiki/Список_кодов_статуса_HTTP

И вы даже можете расширить условие перезаписи, чтобы охватить больше ботов:

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]

Эти правила предотвращают пустой useragent, запрос, начинающийся с /cgi, ограничивают метод до GET/HEAD/POST, запрос, не начинающийся с /

  1. Используя более логичный способ:

Просто переместите или удалите cgi-bin из вашей веб-папки, если вы им не пользуетесь.

Связанный контент