RSS El Diario ¿Qué Demonios?
Seguir
CodeSOD: Paga por esto más tarde
Ross fue encargado de escribir software para integrarse con una pasarela de pago de tarjeta de crédito que utilizaba XML para el intercambio de datos. La pasarela de pago era relativamente pequeña y no tenía un documento de esquema publicado, pero proporcionaba código de ejemplo para analizar sus mensajes XML. El código de ejemplo utilizaba una función llamada fetch_data para extraer datos de la respuesta XML. Sin embargo, la función fetch_data estaba mal implementada, utilizando múltiples subcadenas para analizar el documento XML sin considerar su estructura. Este enfoque la hacía frágil y no podía manejar etiquetas anidadas, atributos o etiquetas de cierre automático. La función también permitía extraer fragmentos de documento arbitrarios e inválidos. Un enfoque mejor sería utilizar las clases de análisis de XML integradas de PHP, que proporcionarían una solución más robusta y mantenible. La implementación actual puede no ofrecer incluso beneficios de rendimiento debido a las múltiples búsquedas lineales a través del documento. El uso de un enfoque de análisis frágil y limitado puede llevar a problemas de mantenimiento y dificultades para manejar documentos XML válidos. La implementación es un ejemplo de una solución mal diseñada que puede causar problemas a largo plazo. El autor del código parece haber tomado un enfoque simplista para analizar XML, que no es adecuado para manejar documentos XML complejos.