Как заблокировать пользовательские агенты с помощью RewriteMap?Apache

Ответить
Anonymous
 Как заблокировать пользовательские агенты с помощью RewriteMap?

Сообщение Anonymous »

Я пытаюсь создать Apache RewriteMap для пользовательских агентов, но застрял. Этот код работает нормально, если агент представляет собой одно слово и точно соответствует строке агента:

Код: Выделить всё

RewriteMap  agent_map "txt:/path/to/deflector_maps/agent.map"
RewriteCond "%{HTTP_USER_AGENT}" !=""
#RewriteCond ${agent_map:%{HTTP_USER_AGENT}|NOT_FOUND} !NOT_FOUND
RewriteCond "${agent_map:%{HTTP_USER_AGENT}}" "=-"
RewriteRule ^ - [F]
например. выполнение этой команды возвращает 403:

Код: Выделить всё

curl -s -o /dev/null -I -w "HTTP %{http_code}\n" https://www.my-domain.com --user-agent "AdsTxtCrawlerTP/1.2"
однако этот возвращает 200:

Код: Выделить всё

curl -s -o /dev/null -I -w "HTTP %{http_code}\n" https://www.my-domain.com --user-agent "Mozilla/5.0 (Linux; Android 7.0;) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; PetalBot;+https://webmaster.petalsearch.com/site/petalbot)"
хотя «PetalBot» находится в Agent.map. Я предполагаю, что это связано с пробелами в пользовательском агенте.
Как мне переписать (без каламбура) мою карту дефлектора выше, чтобы она поймает пользовательский агент, содержащий ключи, которые у меня есть в карте дефлектора? Возможно ли это вообще? RewriteMap отлично работает с IP-адресами и реферерами, поэтому я надеюсь, что его можно использовать и для пользовательских агентов.
Причина, по которой я хочу использовать карту дефлектора, заключается в том, что сервер не нужно перезагружаться, когда я вношу изменения в файл карты, поэтому я могу добавлять к нему программные средства. Изменение вступает в силу немедленно! Это очень интересная функция, которую Apache, похоже, не продвигает.

Подробнее здесь: https://stackoverflow.com/questions/791 ... rewritemap
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Apache»