Attualmente sto lavorando a un progetto in cui sto sviluppando una libreria che eseguirà i POST HTTP su un servizio di backend sul mio server. I dati ricevuti dal servizio di backend vengono elaborati e archiviati in un database e consentono all'utente di utilizzare la libreria per visualizzare i dati.
Voglio assicurarmi che il servizio di backend elabori solo le richieste dalla libreria, se qualcos'altro tenta, come bot, ecc., la richiesta viene respinta.
Stavo pensando che avrei potuto ottenere questo risultato dalla libreria inviando una stringa crittografata in un'intestazione nella richiesta HTTP, quindi quando i servizi di backend ricevono la richiesta, controlla se l'intestazione esiste e se non rifiuta la richiesta, se lo fa , decrittografa l'intestazione e quindi verifica se la stringa decrittografata corrisponde a ciò che il servizio back-end si aspetta, in caso affermativo, continua l'elaborazione, altrimenti la rifiuta.
Stavo pensando che la libreria potrebbe avere il token di validazione codificato nella libreria (la libreria non sarà open source) tuttavia, stavo pensando che questo potrebbe essere problematico se il token di validazione fosse mai compromesso, avrei bisogno per rilasciare una nuova versione di libreria con il nuovo token e chiunque usi la libreria, dovrebbe quindi aggiornare le proprie app per utilizzare la nuova libreria.
Stavo pensando che il token potrebbe essere memorizzato sul server e la libreria richiede quale sia il token e quindi invia il token al servizio di backend, ma poi ho lo stesso problema che sto cercando di evitare, come faccio assicurati che solo la libreria recuperi il token e non chiunque altro.
Esiste una best practice raccomandata per fare ciò che sto cercando di ottenere.
Grazie per l'aiuto che puoi fornire.