#329 · Herramienta para desarrolladores

Generador de Permissions-Policy

Construye una cabecera Permissions-Policy a partir de un objeto JSON donde cada función del navegador recibe una allowlist. Puedes bloquear una función con una lista vacía, permitir el origen propio con self y añadir orígenes explícitos. La salida normaliza la sintaxis para facilitar su inclusión en configuración de servidor o documentación de seguridad.

Datos de entrada

Entrada local
Espacio publicitario

Cómo usar esta herramienta para desarrolladores

  1. Pega o escribe política de permisos en json en el área de entrada.
  2. Ajusta los valores del ejemplo si necesitas reproducir otro caso.
  3. Pulsa el botón principal o usa Ctrl/Cmd + Enter.
  4. Revisa el resultado, el diagnóstico y las métricas antes de copiar o descargar.

Qué hace esta herramienta para desarrolladores

Convierte un mapa de funciones y allowlists en una cabecera Permissions-Policy. La herramienta no inventa funciones ni decide qué permisos necesita tu aplicación.

Valida nombres de función, normaliza self y orígenes URL, elimina duplicados y serializa cada directiva como feature=(allowlist).

La disponibilidad y semántica de cada función dependen del navegador. Comprueba compatibilidad antes de aplicar una política restrictiva en producción.

Ejemplo

Entrada: {"camera":[],"geolocation":["self"],"microphone":["self","https://meet.example.com"]} Salida: Permissions-Policy: camera=(), geolocation=(self), microphone=(self "https://meet.example.com")

Casos de uso

  • Bloquear cámara o micrófono donde no se necesitan.
  • Permitir geolocalización solo al propio sitio.
  • Preparar políticas para aplicaciones con iframes de terceros.

Consejos para obtener resultados fiables

  • Empieza por funciones realmente usadas por tu aplicación.
  • Prueba iframes y flujos de terceros antes de bloquear una función.
  • Usa orígenes absolutos y evita rutas en allowlists.
  • Mantén la política bajo control de versión junto a la configuración del servidor.

Detalles del procesamiento

Cada clave del JSON se trata como nombre de función y cada valor debe ser una lista. Los orígenes distintos de self se validan con URL y se serializan entre comillas.

No mantiene una base de datos de funciones soportadas por cada navegador y no valida permisos declarados dentro de atributos allow de iframes.

Preguntas frecuentes

¿Cómo bloqueo completamente camera con Permissions-Policy?

Usa una allowlist vacía para camera, lo que se serializa como camera=().

¿Cómo se representa self en una cabecera Permissions-Policy?

Se escribe como self dentro de la lista entre paréntesis, sin comillas.

¿Puedo añadir un origen externo a microphone?

Sí, puedes incluir un origen HTTPS explícito en la lista; conviene revisar además la configuración del iframe si aplica.

¿Permissions-Policy sustituye al permiso que pide el navegador al usuario?

No. La política limita qué contextos pueden usar una función, pero el navegador puede seguir requiriendo consentimiento del usuario.

¿Todas las funciones de Permissions-Policy funcionan igual en todos los navegadores?

No. El soporte y algunos nombres de funciones evolucionan, por lo que hay que comprobar compatibilidad para los navegadores objetivo.

Resumen técnico

ElementoTratamiento
EntradaTexto o JSON pegado localmente
ProcesamientoVanilla JavaScript, sin solicitudes externas
SalidaResultado copiable y descargable

Más herramientas de cabeceras HTTP y seguridad

Consulta el hub de cabeceras HTTP y seguridad para trabajar con CORS, cookies, CSP, HSTS, caché y políticas del navegador.