Stiamo creando un'API JSON sulla nostra applicazione web Ruby on Rails, utilizzando JSONAPI :: Resources per esporre endpoint e Doorkeeper per gestire l'autenticazione dell'utente.
La maggior parte dei nostri endpoint API sarà esposta solo agli utenti autenticati e Doorkeeper probabilmente farà un ottimo lavoro per farli rispettare. Ma abbiamo ancora un paio di endpoint che non saranno autenticati: iscriviti, accedi, conferma dell'account e forse un altro paio.
Sono preoccupato che lasciare che gli endpoint dell'API completamente aperti ci espongano agli attacchi, sotto forma di spamming di nuovi account, ad esempio.
- Forse mi preoccupo più del necessario? Le API di solito rendono questo tipo di endpoint non sicuro e aggiungono sistemi di prevenzione come la limitazione?
- In caso contrario, significa firmare (o crittografare) le mie richieste prima di inviarle al server API l'approccio giusto?
- E se è così, hai qualche raccomandazione o un approccio preferito in tal senso?
Ho provato a utilizzare parole chiave di Google come "richiesta di segno API di rails" o "richiesta di crittografia api di rails", ma non sono sicuro che i risultati siano pertinenti o raccomandati.
I primi clienti che parleranno con questa API saranno le applicazioni Android e iOS, e potremmo aggiungere nelle future applicazioni web lato client (al momento, la nostra applicazione Web è monolitica e non utilizza l'API).