fix(api): retrait du rate-limit applicatif sur /api/maxspeed (seule la limite anti-DoS nginx 30 r/s s'applique), suppression du champ 'dir' (chemin FS interne) dans les métadonnées, doc §4 mise à jour
This commit is contained in:
parent
4279eb0f6d
commit
25fa3e5cf0
3 changed files with 10 additions and 15 deletions
|
|
@ -48,7 +48,6 @@ export function meta() {
|
|||
stepM: 40.0,
|
||||
points,
|
||||
files,
|
||||
dir: GRID_DIR,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -143,17 +143,18 @@ Format d'erreur :
|
|||
|
||||
# 4. Rate limiting
|
||||
|
||||
Chaque IP a un **quota global** sur le site : **200 requêtes / 10 s**. Une fois le
|
||||
quota dépassé, l'API retourne `429` avec un en-tête `Retry-After` (secondes).
|
||||
L'API n'a **aucun rate-limit applicatif propre**. Seule s'applique la limite
|
||||
**anti-DoS du reverse-proxy nginx**, commune à tout le site : **30 requêtes / s
|
||||
par IP** (avec un burst de 300). Au-delà, la requête reçoit un `429`.
|
||||
|
||||
```
|
||||
HTTP/1.1 429 Too Many Requests
|
||||
Retry-After: 3
|
||||
Retry-After: 1
|
||||
```
|
||||
|
||||
Ces limites protègent le service public contre les abus et les DoS (surcouche au
|
||||
reverse-proxy qui absorbe les attaques). Pour un usage intensif légitime (batch sur
|
||||
tout le continent), contacte-nous — on pourra te fournir un accès dédié.
|
||||
C'est uniquement une protection contre les abus et les DoS, pas une restriction
|
||||
d'usage : pour un batch lourd et légitime (interroger tout le continent), écris-nous
|
||||
— on pourra te fournir un accès dédié.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1338,17 +1338,12 @@ server = serve({
|
|||
const ip = clientIp(req)
|
||||
if (isHoneypotBanned(ip)) return errorPage(403, req)
|
||||
|
||||
// API publique maxspeed (indépendante de ZMap). OPTIONS CORS autorisé,
|
||||
// sinon on applique le même rate-limit global par IP que le reste.
|
||||
// API publique maxspeed (indépendante de ZMap). OPTIONS CORS autorisé ;
|
||||
// pas de rate-limit applicatif : seule la limite anti-DoS nginx
|
||||
// (30 r/s par IP) s'applique sur l'API.
|
||||
if (pathname.startsWith("/api/maxspeed")) {
|
||||
const msRes = await handleMaxspeedRoute(req, url)
|
||||
if (msRes) return msRes
|
||||
const retryAfterMs = allow(ip)
|
||||
if (retryAfterMs > 0) {
|
||||
const res = json({ ok: false, error: "trop de requêtes" }, 429)
|
||||
res.headers.set("Retry-After", String(Math.ceil(retryAfterMs / 1000)))
|
||||
return res
|
||||
}
|
||||
return errorPage(404, req)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue