Security
在 Haproxy 中阻止網站爬蟲
我正在使用 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