Attualmente sto incontrando un'interfaccia pubblicamente disponibile; accessibile almeno tramite web form / webviews e alcuni protocolli stateless (presumibilmente REST). In passato questo modulo ti permetteva di visualizzare la cronologia delle tue prenotazioni senza un account, inserendo il tuo cognome, un identificativo di prenotazione e un derivato segreto condiviso dall'ID con cui hai prenotato.
A causa di modifiche legali questo segreto condiviso non può più essere usato. Quindi l'interfaccia ora richiede solo il nome e l'id, che io considero aperto per indovinare gli attacchi. A causa di dispositivi legacy non è possibile introdurre nuovi metadati richiesti.
Conosco i consigli OWASP per rallentare gli attacchi di indovinare ( Rallentare gli attacchi di indovinamento online e anche Blocco degli attacchi brute force ). Tuttavia, tutti questi consigli richiedono un sistema di account presente.
Il blocco basato su IP non aiuta contro i moderni strumenti di attacco proxy. Inoltre potrebbe bloccare un sacco di utenti che si nascondono dietro IP in blocco (via cavo, grandi aziende ...).
Ho pensato di adattare i cookie di identificazione dei dispositivi. Normalmente hai la protezione di un sistema di account. Forse aiuta a rallentare la creazione di un cookie id dispositivo e quindi bloccare gli utenti in base a questo. In questo modo, ogni richiesta di un utente bloccato sarebbe molto più lenta di una semplice attivazione delle richieste di moduli e le richieste legittime ripetute sarebbero lente.
Esistono buone pratiche per la protezione di moduli / servizi Web utilizzabili in modo anonimo? Sono abbastanza familiare con i meccanismi in cui è presente un sistema di account, ma questo è nuovo per me.
Grazie!