Ottieni le impostazioni della protezione dagli attacchi
GET /v1/attack-protection · permesso attack-protection:read
Restituisce l'oggetto di protezione dagli attacchi dell'ambiente: forza bruta, limitazione degli IP sospetti, credential stuffing, protezione dai bot, password compromessa, protezione in fase di registrazione, protezione SMS e policy di rischio. Ogni sezione ha due viste: configured è il valore che avete scritto, effective è il valore in vigore, con i valori predefiniti, la soglia minima di sicurezza e il vostro piano applicati. Una sezione che non avete mai scritto ha configured: {}. L'header di risposta ETag identifica il contenuto dell'oggetto; inviatelo come If-Match su PUT e PATCH.
Richiesta
Questa operazione non accetta campi di percorso, query o corpo. L'ambiente deriva dalla credenziale.
Risposta
200 OK con l'oggetto e l'header ETag.
{
"schema_version": 1,
"brute_force": {
"configured": {"max_failures": 10},
"effective": {"mode": "enforce", "max_failures": 10, "window_minutes": 15, "lock_minutes": 15, "notify_user": true}
},
"risk_policy": {
"configured": {"mode": "enforce"},
"effective": {"mode": "log", "challenge_threshold": 4, "block_threshold": null, "notify_user_on_new_device": true}
},
"bot_protection": {
"configured": {},
"effective": {"mode": "risk_based", "provider": "altcha"}
}
}
L'esempio è abbreviato: ogni risposta contiene tutte le otto sezioni (brute_force, suspicious_ip_throttling, credential_stuffing, bot_protection, breached_password, signup_protection, sms_protection, risk_policy). Nell'esempio il piano non include più l'applicazione del rischio, quindi il valore configurato enforce viene mantenuto ma appare come log.
Campi
| Campo | Tipo | Intervallo o valori | Predefinito | Minimo |
|---|---|---|---|---|
brute_force.mode |
testo | log, enforce |
enforce |
|
brute_force.max_failures |
intero | 5-100 | 20 | al massimo 100 |
brute_force.window_minutes |
intero | 5-60 | 15 | |
brute_force.lock_minutes |
intero | 5-60 | 15 | almeno 5 |
brute_force.notify_user |
booleano | true |
||
suspicious_ip_throttling.mode |
testo | log, enforce |
enforce |
|
suspicious_ip_throttling.login_failures_per_ip_per_day |
intero | 10-10000 | 100 | |
suspicious_ip_throttling.signups_per_ip_per_hour |
intero | 1-20 | 20 | al massimo 20 |
suspicious_ip_throttling.allowlist |
array di testo | fino a 100 prefissi CIDR; IPv4 non più ampio di /8, IPv6 non più ampio di /32 | [] |
|
credential_stuffing.mode |
testo | log, enforce |
enforce |
|
credential_stuffing.attack_mode_auto |
booleano | true |
||
credential_stuffing.attack_mode_duration_minutes |
intero | 15-240 | 30 | |
bot_protection.mode |
testo | off, risk_based, always |
risk_based |
|
bot_protection.provider |
testo | altcha |
altcha |
|
breached_password.on_signup |
testo | block |
block |
block |
breached_password.on_password_change |
testo | block |
block |
block |
breached_password.on_login |
testo | require_reset, notify |
require_reset |
|
breached_password.notify_user |
booleano | true |
||
signup_protection.block_disposable_email |
booleano | true |
||
signup_protection.block_email_subaddress |
booleano | false |
||
signup_protection.max_signups_per_device_30d |
intero | 1-50 | 3 | |
sms_protection.allowed_countries |
array di testo | fino a 250 codici ISO 3166-1 alpha-2 | [] (predefinito del piano) |
|
sms_protection.daily_cap |
intero | null | 1-1000000; null è il valore del piano |
null |
|
sms_protection.conversion_breaker |
booleano | true |
true |
|
risk_policy.mode |
testo | log, enforce (enforce richiede il piano Startup o superiore) |
log |
|
risk_policy.challenge_threshold |
intero | 3-8 | 4 | |
risk_policy.block_threshold |
intero | null | 6-12, maggiore di challenge_threshold; null è disattivato |
null |
|
risk_policy.notify_user_on_new_device |
booleano | true |
Errori
| HTTP | codice | Quando |
|---|---|---|
| 401 | unauthenticated |
La credenziale è mancante, non valida o revocata. |
| 403 | insufficient_permissions |
La credenziale non ha il permesso richiesto. |
| 429 | rate_limited |
È stato superato il limite di frequenza; riprovate dopo il periodo indicato in Retry-After. |
| 503 | service_unavailable |
Una dipendenza non è disponibile temporaneamente; riprovate dopo il periodo indicato in Retry-After. |
Esempio
curl https://api.eu.keenauth.com/v1/attack-protection \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY"