rules.json 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. [{
  2. "name":"search request",
  3. "filters":[
  4. "Param:q",
  5. "Path=^(/|/search)$"
  6. ],
  7. "interval":120,
  8. "limit":19,
  9. "actions":[
  10. {
  11. "name":"block",
  12. "params":{
  13. "message":"common rate limit exceeded"
  14. }
  15. }
  16. ],
  17. "subrules":[
  18. {
  19. "name":"roboagent limit",
  20. "interval":60,
  21. "limit":3,
  22. "filters":[
  23. "Header:User-Agent=(curl|cURL|Wget|python-requests|Scrapy|FeedFetcher|Go-http-client|Ruby)"
  24. ],
  25. "actions":[
  26. {"name":"log"},
  27. {
  28. "name":"block",
  29. "params":{
  30. "message":"rate limit exceeded"
  31. }
  32. }
  33. ]
  34. },
  35. {
  36. "name":"botlimit",
  37. "interval":60,
  38. "limit":0,
  39. "stop":true,
  40. "filters":[
  41. "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)"
  42. ],
  43. "actions":[
  44. {"name":"log"},
  45. {
  46. "name":"block",
  47. "params":{
  48. "message":"rate limit exceeded"
  49. }
  50. }
  51. ]
  52. },
  53. {
  54. "name":"IP limit",
  55. "interval":60,
  56. "limit":13,
  57. "stop":true,
  58. "aggregations":[
  59. "Header:X-Forwarded-For"
  60. ],
  61. "actions":[
  62. {"name":"log"},
  63. {
  64. "name":"block",
  65. "params":{
  66. "message":"rate limit exceeded"
  67. }
  68. }
  69. ]
  70. },
  71. {
  72. "name":"rss/json limit",
  73. "interval":60,
  74. "limit":13,
  75. "stop":true,
  76. "filters":[
  77. "Param:format=(csv|json|rss)"
  78. ],
  79. "actions":[
  80. {"name":"log"},
  81. {
  82. "name":"block",
  83. "params":{
  84. "message":"rate limit exceeded"
  85. }
  86. }
  87. ]
  88. },
  89. {
  90. "name":"useragent limit",
  91. "interval":60,
  92. "limit":13,
  93. "aggregations":[
  94. "Header:User-Agent"
  95. ],
  96. "actions":[
  97. {"name":"log"},
  98. {
  99. "name":"block",
  100. "params":{
  101. "message":"rate limit exceeded"
  102. }
  103. }
  104. ]
  105. }
  106. ]
  107. }]