Default request limits per minute, hour and day, sized for API use (closes #176)
check / check (push) Successful in 5m15s
check / check (push) Successful in 5m15s
The default request limits now suit programmatic use of an API, such as an automation fleet on another host, and still catch abusive bots: - per minute: 300, passed within seconds by a client firing as fast as it can; - per hour: 30000; - per day: 300000, passed by a crawler that keeps up 4 a second. At the default minute limit no client reaches the hour limit: 300 a minute is at most 18,000 an hour. The byte limits and ban lengths are unchanged. SPEC.md, README.md and docs/settings.md give the reasons; docs/gitea.md redoes the Actions runner sums. Judgement call: the docs/alerts.md ban example shows the minute limit. Model: opus-5-5
This commit is contained in:
+14
-3
@@ -99,9 +99,20 @@ that take `off`, the `_FILE` form, and what each group does and why.
|
||||
|
||||
## Request rate limits, per client
|
||||
|
||||
- `SWWAF_RATE_LIMIT_PER_MINUTE` (default `6000`), `SWWAF_RATE_LIMIT_PER_HOUR`
|
||||
(default `100000`) and `SWWAF_RATE_LIMIT_PER_DAY` (default `1000000`): the
|
||||
most requests a client may make in each window. A count or `off`.
|
||||
- `SWWAF_RATE_LIMIT_PER_MINUTE` (default `300`, 5 a second): the most requests a
|
||||
client may make in a minute. A count or `off`. The default catches, within
|
||||
seconds, a client firing requests as fast as it can. It leaves room for an
|
||||
automation fleet's busiest minute and a few quick first visits with an empty
|
||||
cache.
|
||||
- `SWWAF_RATE_LIMIT_PER_HOUR` (default `30000`, about 8 a second): the most
|
||||
requests a client may make in an hour. A count or `off`. The default leaves
|
||||
room for an automation fleet at work. With the minute limit raised or off, it
|
||||
catches a crawler that keeps up 10 a second.
|
||||
- `SWWAF_RATE_LIMIT_PER_DAY` (default `300000`, about 3.5 a second): the most
|
||||
requests a client may make in a day. A count or `off`. The default catches a
|
||||
crawler that keeps up 4 a second around the clock.
|
||||
- Counting cannot catch a client that stays under all three limits (see "Request
|
||||
rate limits, per client" in [`SPEC.md`](../SPEC.md)).
|
||||
- `SWWAF_RATE_LIMIT_EXEMPT_PATHS` (default empty): path prefixes exempt from
|
||||
rate limiting and the byte limits, such as `/assets/`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user