Un analizador que acepta un buen informe XML ha pasado sólo una prueba estricta. Un útil conjunto de validación comprueba qué extrae, qué rechaza, cómo maneja las variaciones admitidas y si los reintentos cambian los totales. Trate los valores normalizados esperados como parte del accesorio, no como una salida que la prueba puede inventar.
Declarar el contrato soportado
Referencias: RFC 9990 §3.1.1, RFC 9990 §3.2.
Registre las versiones del analizador, el tiempo de ejecución, el descompresor y el esquema. Indique qué formatos y extensiones de informes se admiten y cómo se manejan las entradas heredadas. RFC 9990 define el formato agregado actual y el modelo de extensión; la compatibilidad con formatos más antiguos es una decisión de compatibilidad independiente.
Primero construya un dispositivo mínimo válido. Guarde sus bytes, hash, metadatos esperados, intervalo, IP de origen, recuento, identidades y resultados alineados. No considere suficiente un análisis XML exitoso: verifique los tipos y significados de los campos. Mantenga los valores opcionales faltantes distintos de los datos obligatorios no válidos.
Pruebe los errores semánticos comunes
Referencias: RFC 9990 §3.1.1.9, RFC 9990 §3.1.1.11, RFC 9989 §5.3.5.
incluir crudo DKIM pasar bajo un dominio no relacionado con una falla DKIM alineada y sin procesar SPF pasar sin alineación. Incluya un caso en el que un mecanismo alineado pasa mientras el otro falla. Compruebe que el resultado normalizado no exija que ambos mecanismos se aprueben ni equipare el éxito puro con la alineación.
Agregar disposición informada que difiere de una inferencia simplista de la política publicada. Conservar los motivos de anulación disponibles. Para el esquema actual, incluya el paso del valor ActionDispositionType en lugar de rechazarlo como un valor heredado desconocido; RFC 9990 Apéndice A lo define para pasar DMARC con una política de cumplimiento. Mantenga explícitamente separadas las expectativas del formato heredado. Pruebe varios resultados DKIM sin descartar todas las firmas excepto la primera. El propósito es preservar lo que dice el informe, no fabricar una nueva evaluación del receptor a partir de datos incompletos.
Ejercicio de casos estructurales y de seguridad.
Referencias: RFC 9990 §3.2, RFC 9990 §8.1.
Referencia: Prevención de entidades externas XML de OWASP, orientación general.
Utilice valores obligatorios no válidos, XML con formato incorrecto, extensiones de espacio de nombres admitidas, versiones no admitidas, elementos opcionales faltantes y anidamiento limitado excesivo. Pruebe límites de tamaño comprimidos y ampliados, entradas interrumpidas y centinelas de referencia externa inofensivos de forma aislada. Defina si cada entrada se acepta, se pone en cuarentena o se rechaza y por qué.
Una extensión compatible no debería desaparecer silenciosamente si el análisis posterior afirma preservarla. Una construcción no compatible debería producir un resultado de compatibilidad explícito en lugar de reclasificarse como autenticación fallida. Mantenga las pruebas de seguridad pequeñas y limitadas a los recursos; no genere cargas de trabajo destructivas simplemente para demostrar un límite.
Verificar el comportamiento de transacciones y duplicados
Referencias: RFC 9990 §3.5.4.
Importe un dispositivo, reprodúzcalo y reinicie el trabajador antes de volver a reproducirlo. El informe contado debe permanecer único según la regla de duplicación documentada. Agregue un archivo adjunto diferente que reclame la misma identidad del informe y requiera una decisión de conflicto explícita. Las identificaciones idénticas por sí solas no constituyen un permiso para descartar pruebas diferentes sin revisión.
Inyecte una interrupción controlada antes de comprometerse. Confirme que ningún registro parcial afecte las métricas de producción y que un reintento permitido produzca el resultado esperado una vez. Pruebe los resultados de observación cero como no disponibles en lugar de dividirlos por cero o fabricar una tasa de aprobación perfecta.
Trabajar a través de una fila de aceptación
El dispositivo sintético F1 contiene 90 observaciones con pase DKIM alineado y diez sin mecanismo de paso alineado. Su recuento esperado incluido es 100 y el recuento esperado de pases observados es 90. Al reproducir F1 se deben dejar ambos valores sin cambios. Una copia deliberadamente truncada debe rechazarse sin aumentar ninguno de los totales.
Guarde los valores esperados antes de la ejecución. Compare la producción real, las mediciones de recursos y los diagnósticos con esa línea de base. Esta es una especificación de aceptación del analizador, no una afirmación de que ningún analizador comercial o inquilino la haya aprobado. Un nuevo modelo independiente de aritmética/repetición fuera de línea verifica los valores 100/90 y los recuentos sin cambios en identidades repetidas; no analiza ni valida un informe XML RFC 9990 . Si un caso falla, conserve el defecto y el accesorio exacto para que una revisión posterior pueda reproducirlo.
Cambios de puerta en los resultados registrados
Mantenga una matriz que contenga el ID del dispositivo, el hash, el propósito, el resultado esperado, el resultado real, la configuración del analizador y la decisión de revisión. Exigir que todos los casos obligatorios pasen en la revisión implementada, con excepciones documentadas para funciones no compatibles. Vuelva a ejecutar después de cambios de dependencia o normalización y compare los efectos de las métricas históricas antes de reprocesar los informes almacenados. La validación del analizador debería proteger tanto la disponibilidad del sistema como el significado de los números que la gente utiliza para tomar decisiones políticas.