Lo que no debe salir en un error
Un mensaje de error es un canal de salida que nadie audita. Qué se filtra por ahí sin querer, por qué en el escritorio importa menos que en un servidor pero no importa cero, y la regla de las dos audiencias.
Qué se filtra
Por qué en el escritorio importa menos
Conviene decirlo para no exagerar. En un servidor, un mensaje de error viaja a un desconocido y puede revelarle la estructura interna de un sistema que no es suyo. En el escritorio, el destinatario es el dueño de la máquina: enseñarle su propia ruta o el esquema de su propia base no le revela nada que no pudiera mirar.
Así que el riesgo directo es pequeño. Los tres caminos por los que sí importa son indirectos, y los tres son reales:
El error sale de la máquina. El usuario copia el mensaje en un informe de fallo, en un foro o en un correo. Lo que estaba en su disco pasa a estar en internet, incluido su nombre de usuario y a veces algo peor.
El registro viaja. Si tienes recogida de informes o le pides el fichero de registro —nivel 10.4—, todo lo que fue a parar ahí llega a ti. Y a ti no te hace falta su nombre de usuario, ni su testigo, ni el contenido de su documento.
El error se enseña donde no debe. Un mensaje del core pintado en la interfaz sin filtrar es también lo que ve alguien que mire por encima del hombro, o lo que aparece en una captura de pantalla.
La regla de las dos audiencias
Es la que resuelve el nivel entero, y ya está montada si seguiste el 18.3:
Con ese reparto, el message del payload deja de ser un problema porque nadie se lo enseña al usuario. Sigue estando para el registro y para depurar, que es donde tiene sentido.
Qué limpiar antes de que salga de la máquina
Si recoges informes o pides el fichero de registro, hay tres limpiezas que valen la pena y son baratas:
- Sustituir el directorio personal por un marcador. Una función que reemplaza la ruta del usuario por algo genérico antes de escribir en el registro. Convierte la ruta en información útil sin el nombre.
- No registrar nunca los valores de las credenciales. Ni en un error, ni al depurar «solo un momento». El momento se queda.
- Truncar el contenido citado. Un error de parseo que enseña doscientos caracteres del documento del usuario es demasiado; veinte suele bastar para localizar el problema.