Roblox ofrece un almacén de secretos para cada juego. Los secretos son información sensible como claves API, contraseñas y tokens de acceso que utilizas para autenticarte con servicios externos. Por ejemplo, si deseas conectarte a un servicio de análisis o música de terceros, probablemente necesites usar una clave API para autenticarte.
Podrías copiar y pegar la clave API en un script o agregarla a un almacén de datos, pero esos enfoques conllevan riesgos de seguridad innecesarios. La mejor solución es utilizar el almacén de secretos y acceder a la clave utilizando un pequeño conjunto de métodos seguros.
Agregar secretos
Para ver, crear o editar secretos, debes ser el propietario del juego o del grupo. Puedes tener hasta 500 secretos por juego.
Navega al Tablero del Creador.
Selecciona tu juego y luego selecciona Secretos ⟩ Crear Secreto.
Ingresa un nombre, el secreto y el dominio aplicable.
- El nombre actúa como un identificador único para el secreto, por lo que recomendamos algo descriptivo.
- Los secretos pueden tener hasta 1,024 caracteres de longitud. Las claves API y los tokens de acceso deben provenir del proveedor del servicio, pero si el secreto es una contraseña, probablemente la creaste tú mismo.
- Puedes usar una sintaxis de comodín limitada para el dominio, como * para cualquier dominio (no recomendado) o *.example.com para cualquier subdominio en example.com. Los dominios específicos son aún mejores, como my.example.com.
Secretos locales
Por razones de seguridad, el almacén de secretos para cada juego solo está disponible en servidores en vivo o en entornos de pruebas colaborativas. Si intentas acceder a un secreto durante pruebas locales, recibirás un error de No se puede encontrar el secreto con la clave dada. Recibirás un error idéntico si intentas acceder a secretos desde un script del cliente.
Para especificar secretos para pruebas locales, ve a Studio y luego a Archivo ⟩ Configuración de la Experiencia ⟩ Seguridad. Puedes crear nuevos secretos y editar o eliminar secretos existentes en la sección Secretos Locales.
Usar secretos
Antes de usar secretos dentro de tu juego, debes habilitar Permitir Solicitudes HTTP en la sección de Seguridad de la ventana Archivo ⟩ Configuración de la Experiencia de Studio. Luego llama a HttpService:GetSecret() dentro de un script del servidor:
local HttpService = game:GetService("HttpService")
local testSecret = HttpService:GetSecret("test_secret")Parte del atractivo de usar almacenes de secretos es que no puedes imprimir accidentalmente un secreto. En lugar del secreto en sí, el siguiente código imprime el nombre que proporcionaste al crear el secreto:
print(testSecret) --> Secreto(test_secret)No puedes manipular la cadena directamente. En su lugar, el tipo de dato Secret te permite agregar un prefijo y un sufijo al secreto para ayudar a formar una URL o insertar contenido como Bearer:
local HttpService = game:GetService("HttpService")
local testSecret = HttpService:GetSecret("test_secret")
local prefix = "https://my.example.com/endpoint?apiKey="
local suffix = "&user=username"
local url = testSecret:AddPrefix(prefix)
url = url:AddSuffix(suffix)
print(url) --> https://my.example.com/endpoint?apiKey=Secreto(test_secret)&user=usernameDespués de tener una URL con el secreto insertado, puedes hacer solicitudes HTTP estándar utilizando métodos como HttpService:RequestAsync(). Por supuesto, puedes ignorar estos métodos e insertar el secreto directamente en un encabezado también.