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"