Ho un'API REST per eseguire alcuni calcoli e restituire il risultato, con un sistema di token molto semplice in cui solo gli utenti autorizzati possono utilizzare l'API.
L'utente aggiunge il proprio token alla query in questo modo:
{
authorization: 'my token',
moreData: 51351,
etc: 'etc'
}
Poiché gli utenti di questa API di solito non sono programmatori, ho realizzato una pagina Web molto semplice che dimostra l'API, con una demo live che può essere eseguita direttamente dalla pagina Web, dimostrando come funziona e cosa viene restituito.
Questa dimostrazione ha un token di autorizzazione falso, che viene visualizzato nella query di esempio. Ho creato una funzione JavaScript semplice, nascosta e parzialmente offuscata che intercetta questo falso token e lo sostituisce con un token effettivo prima di inviare la richiesta, il che probabilmente ingannerà la maggior parte degli utenti. Ma un utente che osserva effettivamente la richiesta dallo strumento di debug nel browser vedrà facilmente il token effettivo che viene inviato e può utilizzare questo token per inviare la propria richiesta.
Ovviamente, potrei valutare il limite del token demo, ma questo significherebbe che gli utenti che stanno sperimentando la demo live potrebbero sperimentare blocchi temporanei, che vorrei evitare.
C'è un modo per proteggere il token di autorizzazione demo da un'API che deve essere facile da usare e richiede una demo dal vivo?