Tengo una API simple que quiero limitar a los usuarios usando una clave. Para cada solicitud, los usuarios deberán publicar la clave y los demás parámetros.
Por ejemplo en R:
res <- httr::POST(
"api-url",
body = list(
img = img,
key = "6pX2PKIKTGyjORcUjlbyDv1yPyxDdk63LudskjdXnyx1tJ7mjhfmeYMTQ7gH8q376"
),
encode = "json"
)
El manejador de solicitudes hará lo siguiente:
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)
}
Mi pregunta es: ¿es seguro permitir que el objeto keys
sea público para que cualquiera pueda leerlo?
En este momento es un archivo yaml
como este que contiene solo los hashes para cada clave:
keys:
- ef556689177dbe281139a5688162f54166127c83746a83c87b872605621sa156
- b934527d8d59be4766e43db6c9de039871ddcea33c948bcf59ee5ed29fdr1f4f