Sto configurando un micro-servizio Gateway AWS API + Lambda che restituirà dati non sensibili ma specifici dell'utente. Ciò significa che le risposte dal servizio non possono essere memorizzate nella cache e fornite a più utenti.
Esiste la possibilità che terze parti non autorizzate colpiscano questo servizio e causino forti picchi nell'utilizzo delle risorse.
Perché deve essere una richiesta lato client?
Le pagine del sito Web principale vengono solitamente memorizzate nella cache e inviate da CloudFront senza inviare ogni richiesta al server di origine, pertanto è impossibile effettuare questa richiesta sul lato server per ciascun utente.
Idee che ho avuto
-
Richiede una chiave API da utilizzare per accedere al servizio.
È improbabile che questo sia il miracolo magico perché anche se la chiave stessa è nascosta effettuando una chiamata a uno script back-end separato, tutto ciò che un utente non autorizzato dovrebbe fare è chiamare lo script anziché l'API direttamente e otterrebbe gli stessi risultati.
-
Aggiunta di controlli personalizzati basati su intestazioni, origini, ecc. prima di inviare una risposta valida dall'API
Queste cose possono essere falsificate in modo relativamente semplice, quindi non è affatto garantito che funzioni, ma potrebbe scoraggiare molte persone meno motivate.
C'è qualcos'altro che può essere fatto per garantire che questo servizio sia accessibile solo da persone che effettivamente visualizzano il sito Web e non da applicazioni di terze parti?