rules.json 1.9 KB

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