Security

在 Haproxy 中阻止網站爬蟲

  • April 18, 2018

我正在使用 Haproxy。我想阻止我網站上的爬蟲。在 haproxy.cfg 中,我創建了一個規則。

acl blockedagent hdr_sub(user-agent) -i -f /etc/haproxy/badbots.lst
   http-request deny if blockedagent

該文件/etc/haproxy/badbots.lst包含我要阻止的使用者代理,

^Lynx
^PHP
^Wget
^Nutch
^Java
^curl
^PEAR
^SEOstats
^Python\-urllib
^python\-requests
^HTTP_Request
^HTTP_Request2

例如,它也應該阻止wget嘗試。但是當我使用時wget mysite.com/example/discussion,它會給我輸出。另外,我也試過python scrapy了。但在這兩種情況下,它都會給出輸出,它應該阻止嘗試。我認為阻止列表不起作用。推薦的方法應該是什麼?

採用hdr_reg

acl blockedagent hdr_reg(user-agent) -i -f /etc/haproxy/badbots.lst

^從 badbots.lst中刪除

====

$ cat conf
global
   debug
defaults
   mode http
frontend web
   bind *:80
   acl blockedagent hdr_reg(user-agent) -i -f badbots.lst1
   http-request deny if blockedagent
   default_backend asdf

backend asdf
   server a 127.0.0.1:8000

$ cat badbots.lst1
^Wget
^curl



$ curl http://127.0.0.1
<html><body><h1>403 Forbidden</h1>
Request forbidden by administrative rules.
</body></html>

$ wget http://127.0.0.1
--2018-04-16 01:47:51--  http://127.0.0.1/
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... 403 Forbidden
2018-04-16 01:47:51 ERROR 403: Forbidden.

$ curl http://127.0.0.1 -A "asdf"
HELLO

引用自:https://serverfault.com/questions/908140