Recursos · 37

Asegurar una API GraphQL: autorización, costo de consulta y evidencia

Hacer cumplir los derechos de objetos y campos, vincular el trabajo del servidor y probar las rutas de denegación.

Actualizado · 3 min

Libros sobre Internet y tecnología en una biblioteca Ilustración · escena ficticia

Lo que esta guía ayuda a lograr

  • Mapear el esquema expuesto
  • Ejercicio de permisos
  • Coste de consulta vinculada
  • Verificar denegaciones

Comprobación rápida

  • ¿Puede una cuenta leer el objeto de otra cuenta?
  • ¿Un campo sensible sigue la decisión de acceso de su padre?
  • ¿Cuánto cuestan profundidad, alias y paginación juntos?
  • ¿Qué detalles se filtran por errores?
  • ¿Quién observa negaciones y abusos?

Método paso a paso

  1. 1

    Operaciones de inventario

    Tipos de listado, campos, mutaciones, roles, propietarios de objetos y datos sensibles. Incluya consultas de clientes actuales y rutas poco utilizadas.

    Entregable: matriz de operación, rol, objeto y campo.

  2. 2

    Probar cada decisión de acceso

    Cree cuentas de prueba distintas e intercambie ID de objetos, incluidos objetos anidados. Los resolutores deben hacer cumplir la autorización antes de devolver datos.

    Entregable: casos permitidos y denegados reproducibles.

  3. 3

    Trabajo del servidor vinculado

    Medir el coste real de campos y colecciones. Pruebe la profundidad, la amplitud, los alias, la paginación, el procesamiento por lotes y el tiempo juntos, luego establezca límites adecuados.

    Entregable: política de costos y conjunto de consultas contradictorias.

  4. 4

    Reducir la exposición innecesaria

    Optar por la introspección del contexto, ocultar detalles de errores internos y eliminar campos que revelen más de lo que los clientes necesitan.

    Entregable: configuración pública revisada y respuestas de error.

  5. 5

    Observar con moderación

    Registra identidad técnica útil, operación, costo, denegación y correlación excluyendo secretos y argumentos sensibles. Asignar propiedad de alerta.

    Entregable: tablero y procedimiento de investigación.

  6. 6

    Repetición después del cambio

    Cuando cambia un campo, rol o cliente, repetir autorización y cargar casos. Verifique consultas antiguas que ahora atraviesan el gráfico revisado.

    Entregable: resultado de regresión y decisión de liberación.

Indicadores de gestión

IndicadorQué midePrimera acción
AccesoCasos de objetos y campos denegados como se esperabaArreglar el solucionador
CostoConsultas pesadas contenidas por políticaAjustar campos y límites
ErroresRespuestas públicas sin detalle internoReducir detalle expuesto
RegresiónOperaciones del cliente reproducidas después del cambioBloquear rotura involuntaria

Errores comunes

  • Confiar únicamente en el acceso al endpoint
  • Limitando la profundidad pero ignorando la amplitud
  • Olvido de autorización de campos anidados
  • Registro de argumentos con datos sensibles

Preguntas frecuentes

¿GraphQL elimina la autorización API ordinaria?

No. Cada acceso a objetos y campos aún necesita una decisión basada en la identidad y el contexto.

¿Es suficiente con desactivar la introspección?

No. Puede reducir la exposición del esquema pero no soluciona el costo de acceso o consulta.

¿Es suficiente un límite de profundidad?

No. Los alias, la amplitud, las listas y el coste específico del campo también importan.

Referencias oficiales

Las referencias respaldan el método. Adapte los controles a su contexto; no constituyen certificación. Los títulos de referencia originales y los documentos fuente pueden estar en otro idioma.