Ho una semplice API che voglio limitare gli utenti usando una chiave. Per ogni richiesta, gli utenti dovranno pubblicare la chiave e gli altri parametri.
Ad esempio in R:
res <- httr::POST(
"api-url",
body = list(
img = img,
key = "6pX2PKIKTGyjORcUjlbyDv1yPyxDdk63LudskjdXnyx1tJ7mjhfmeYMTQ7gH8q376"
),
encode = "json"
)
Il gestore delle richieste farà quanto segue:
key <- openssl::sha256(key)
if(!key %in% keys | is.null(key) | is.na(key)) {
stop("Not authorized. Get an api key from decryptr.com.br")
} else {
return(result)
}
La mia domanda è: è sicuro lasciare pubblico l'oggetto keys
affinché chiunque possa leggerlo?
Al momento è un file yaml
come questo contenente solo gli hash per ogni chiave:
keys:
- ef556689177dbe281139a5688162f54166127c83746a83c87b872605621sa156
- b934527d8d59be4766e43db6c9de039871ddcea33c948bcf59ee5ed29fdr1f4f