Antes de empezar

Nivel intermedio. Necesitas Node.js, el programa que ejecuta JavaScript en tu ordenador, y un editor de texto. No necesitas cuenta ni clave.

Abre una terminal: una ventana donde escribes órdenes para tu ordenador. Sitúate en la carpeta del archivo.

Un guardrail, o control de protección, limita o comprueba lo que puede hacer un sistema.

Prompt injection significa introducir instrucciones engañosas en documentos u otros datos para cambiar el comportamiento del sistema.

Una instrucción como «no reveles secretos» ayuda, pero no sustituye los permisos que impone tu aplicación.

1. Define una acción permitida

Escribe qué puede hacer una persona con permiso de lectura. En este ejercicio solo puede leer datos públicos.

Deniega las acciones que no estén incluidas. Un texto generado por un modelo no debe ampliar los permisos.

Qué deberías ver: Una lista explícita de acciones permitidas. El borrado de la base de datos debe quedar fuera.

2. Guarda la prueba de permisos

Guarda el bloque en permisos.mjs. authorize comprueba si una acción está incluida en los permisos de la persona.

reader significa «lector»; read_public, «leer datos públicos»; delete_database, «borrar la base de datos». El ejemplo no borra nada.

JavaScript permisos.mjs
// La aplicación decide los permisos, nunca el texto del modelo.
function authorize(action, role) {
  const allowed = role === "reader" ? ["read_public"] : [];
  if (!allowed.includes(action)) throw new Error("Acción no autorizada");
  return true;
}
authorize("read_public", "reader");
console.log("Lectura autorizada");
try {
  authorize("delete_database", "reader");
  throw new Error("Fallo en el control de permisos");
} catch (error) {
  if (error.message !== "Acción no autorizada") throw error;
  console.log("Acción peligrosa bloqueada");
}
Resultado comprobado
Lectura autorizada
Acción peligrosa bloqueada
Descargar permisos.mjs

Qué deberías ver: Un archivo permisos.mjs que prueba una lectura y un intento de borrado sin efectos externos.

3. Ejecuta la prueba de denegación

Escribe node permisos.mjs en la terminal. El programa debe permitir la lectura y bloquear el intento de borrado.

Qué deberías ver: Dos líneas: «Lectura autorizada» y «Acción peligrosa bloqueada».

4. Revisa dónde guardarás tu clave

Identifica el servidor, el programa que recibirá las peticiones. La clave de API es su secreto de acceso al proveedor. Ese secreto pertenece al servidor y queda separado del código público.

Evita incluir claves en el navegador, mensajes de error o registros. Comparte solo los datos que requiere cada operación.

Qué deberías ver: Una ubicación privada para la clave. Esta práctica no requiere ninguna ni comprueba un servicio real.

Errores comunes

Confías en una instrucción escrita: añade un control de permisos antes de ejecutar herramientas.

Validas datos, pero no autorizas la acción: comprueba ambas cosas. El formato correcto no concede permiso.

Das por segura toda la aplicación tras este ejemplo: prueba también sus conexiones, usuarios y operaciones reales.

Qué has aprendido

Has probado permisos fuera del modelo. Una evaluación, o comprobación con casos esperados, ayuda a detectar fallos.

Repite las pruebas cuando cambien herramientas, instrucciones o datos. Ningún ejemplo aislado garantiza bloquear todos los ataques.

Siguiente paso

Continúa con cuándo usar un agente de ia y cómo limitar sus pasos.

Fuentes y verificación

Redactado con IA a partir de documentación oficial. Fuentes revisadas el 2026-10-04. Ejemplos locales ejecutados; consulta su alcance arriba. No se atribuye una prueba con un proveedor real ni una revisión humana.

Para seguir aprendiendo

Consulta versiones oficiales antes de actualizar