Omejevanje hitrosti zahtevkov omejuje število zahtevkov, ki jih lahko odjemalec poslal v časovnem oknu. Uporabite ga na več nivojih, ker vsak vidi nekaj drugega, in ga ključite po čemerkoli, kar identificira zlorabljač.
Omejevanje hitrosti zahtevkov omejuje število zahtevkov, ki jih lahko odjemalec poslal v časovnem oknu. Uporabite ga na več nivojih, ker vsak vidi nekaj drugega, in ga ključite po čemerkoli, kar identificira zlorabljač.
429 Too Many Requests s Retry-After, da se odjemalci vljudno umaknejo namesto da bi napadali.# Define a shared-memory zone keyed by client IP.
# rate=10r/s = the steady refill rate (token bucket).
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
server {
location /api/ {
# burst=20: allow a short spike of 20 queued requests
# nodelay: serve the burst immediately instead of spacing it out
limit_req zone=api burst=20 nodelay;
# Return 429 (not the default 503) so clients see a rate-limit signal
limit_req_status 429;
proxy_pass http://backend;
}
}
Tu se vsak IP napolni pri 10 zahtevkih/sekundo, lahko se sunka do 20, in vse preko tega dobi 429.
Omejevanje hitrosti je vaša najcenejša, vedno prižgana zaščita pred poplavami Layer 7, krađo poverilnic in divjimi skrajačami. Plastenje (robna točka za količino, proxy za izvor, aplikacija za poslovno logiko) in pravilno ključenje ustavi zlorabljače, medtem ko pravi uporabniki — in legitimni sunki — nemoteno tečejo. Nastavitev omejitev iz resničnih primerjav je tisto, kar jo prepreči, da bi postala vaša lastna črna noč.