@@ -1,105 +1,125 @@
2− { "name": "suspiciously frequent IP",
2+ {
7− "Header:X-Forwarded-For"
13− { "name": "search request",
22− "name": "roboagent limit",
3+ "name": "roboagent limit",
25− "filters": [
4+ "filters": [
26− "Header:User-Agent=(curl|cURL|Wget|python-requests|Scrapy|FeedFetcher|Go-http-client)"
5+ "Header:User-Agent=(curl|cURL|Wget|python-requests|Scrapy|FeedFetcher|Go-http-client|Ruby|UniversalFeedParser)"
28− "actions": [
9+ "actions": [
29− { "name": "log"},
10+ { "name": "log"},
30− { "name": "block",
11+ { "name": "block",
31− "params": {
12+ "params": {
32− "message": "Rate limit exceeded"
13+ "message": "Rate limit exceeded"
38− "name": "botlimit",
19+ "name": "botlimit",
41− "filters": [
20+ "filters": [
42− "Header:User-Agent=(Googlebot|bingbot|Baiduspider|yacybot|YandexMobileBot|YandexBot|Yahoo! Slurp|MJ12bot|AhrefsBot|archive.org_bot|msnbot|MJ12bot|SeznamBot|linkdexbot|Netvibes|SMTBot|zgrab|James BOT)"
21+ "Header:User-Agent=(Googlebot|bingbot|Baiduspider|yacybot|YandexMobileBot|YandexBot|Yahoo! Slurp|MJ12bot|AhrefsBot|archive.org_bot|msnbot|MJ12bot|SeznamBot|linkdexbot|Netvibes|SMTBot|zgrab|James BOT)"
44− "actions": [
25+ "actions": [
45− { "name": "log"},
26+ { "name": "log"},
46− { "name": "block",
27+ { "name": "block",
47− "params": {
28+ "params": {
48− "message": "Rate limit exceeded"
29+ "message": "Rate limit exceeded"
51− ]
34+ { "name": "suspiciously frequent IP",
39+ "Header:X-Forwarded-For"
45+ { "name": "search request",
54+ "name": "missing Accept-Language",
55+ "filters": ["!Header:Accept-Language"],
60+ "params": {"message": "Rate limit exceeded"}}
64+ "name": "suspiciously Connection=close header",
65+ "filters": ["Header:Connection=close"],
70+ "params": {"message": "Rate limit exceeded"}}
54− "name": "IP limit",
74+ "name": "IP limit",
55− "interval": 61,
75+ "interval": 61,
56− "limit": 9,
76+ "limit": 9,
57− "stop": true,
77+ "stop": true,
58− "aggregations": [
78+ "aggregations": [
59− "Header:X-Forwarded-For"
79+ "Header:X-Forwarded-For"
61− "actions": [
81+ "actions": [
62− { "name": "log"},
82+ { "name": "log"},
63− { "name": "block",
83+ { "name": "block",
64− "params": {
84+ "params": {
65− "message": "Rate limit exceeded"
85+ "message": "Rate limit exceeded"
71− "name": "rss/json limit",
91+ "name": "rss/json limit",
93+ "Param:format=(csv|json|rss)"
72− "interval": 121,
95+ "interval": 121,
73− "limit": 2,
96+ "limit": 2,
74− "stop": true,
97+ "stop": true,
76− "Param:format=(csv|json|rss)"
78− "actions": [
98+ "actions": [
79− { "name": "log"},
99+ { "name": "log"},
80− { "name": "block",
100+ { "name": "block",
81− "params": {
101+ "params": {
82− "message": "Rate limit exceeded"
102+ "message": "Rate limit exceeded"
88− "name": "useragent limit",
108+ "name": "useragent limit",
89− "interval": 61,
109+ "interval": 61,
90− "limit": 199,
110+ "limit": 199,
91− "aggregations": [
111+ "aggregations": [
92− "Header:User-Agent"
112+ "Header:User-Agent"
94− "actions": [
114+ "actions": [
95− { "name": "log"},
115+ { "name": "log"},
96− { "name": "block",
116+ { "name": "block",
97− "params": {
117+ "params": {
98− "message": "Rate limit exceeded"
118+ "message": "Rate limit exceeded"