- Control de acceso
- Roles dentro de la organización con una tabla de implicaciones: propietario, administrador, agente de soporte, revisor, editor de la base de conocimiento, observador. El permiso se comprueba en cada petición, no solo al iniciar sesión.
- Credenciales de los canales
- Las claves del correo, del envío de mensajes y del resto de canales se guardan cifradas, con un procedimiento de rotación previsto.
- Importación de contenido desde una URL
- Protegida frente al acceso a direcciones internas de la red: una lista de esquemas permitidos, la comprobación de cada dirección IP y de cada salto de redirección, un límite de tamaño contado durante la descarga y ninguna transmisión de las cabeceras de autenticación.
- El widget en un dominio ajeno
- Un token de vida corta en la cabecera en lugar de una cookie, más una lista de dominios permitidos que se fija por separado para cada organización. Una petición desde un dominio fuera de esa lista no se atiende.
- Eventos entrantes
- Verificación de la firma y protección contra la repetición del mismo evento, basada en su identificador.
- Interruptores de emergencia
- Se aplican en la capa de transporte, no en la interfaz. Un canal apagado no envía ningún mensaje aunque una capa superior se lo pida.
- Configuración de producción
- La aplicación se niega a arrancar en cuanto detecta ajustes pensados para el trabajo local. Un entorno de producción no puede arrancar por accidente en modo de pruebas.