Ciao a tutti, gestisco un sito Web di hosting di immagini e sto progettando un'API per questo. La mia preoccupazione è che io non voglio che nessuno sia in grado di fare qualcosa di simile:Come proteggere una API dall'abuso?
while(true) {
Upload();
}
e spam/DoS al sito.
La mia soluzione attuale è limitare tutti gli indirizzi IP a un certo numero di caricamenti al giorno/ora. Credo che funzionerà bene per le applicazioni desktop che utilizzeranno l'API, ma per i siti Web che desiderano utilizzarlo, tutti gli utenti avranno lo stesso IP (quello del server).
Suppongo che la soluzione migliore sarebbe disporre di account utente che si autenticano con l'API e quindi vietare ogni account in caso di abuso. Il problema è che il mio sito non ha alcun account utente, è completamente anonimo.
Che altro si può fare? Vorrei mantenere le cose il più possibile aperte, mentre allo stesso tempo ho la possibilità di vietare gli utenti/IP che stanno ovviamente abusando del servizio.
Forse i tuoi siti di collaborazione di terze parti possono decorare la richiesta con l'IP originale, come l'intestazione HTTP X_FORWARDED_FOR? –
Forse le funzionalità anti-DoS sono integrate nel web server (configurabile in) e quindi non devono essere presenti nell'applicazione web? – ChrisW
ChrisW: No, il DoS può verificarsi su più livelli di un'app; diciamo bloccando tutti gli account utente, ecc. Devono essere soddisfatti a questo livello. –