Llegué a conocer la vulnerabilidad de truncamiento de SQL que desconocía. Tengo entendido que esta vulnerabilidad se basa en el hecho de que MySQL trunca el valor de una "consulta de inserción" si el valor excede el ancho de la columna correspondiente. La primera aparición de esta vulnerabilidad se encuentra en CVE-2008-4106 que reporta el problema en el CMS de WordPress. El CVE informa que el problema estaba relacionado con una implementación de WordPress. Pero diría que este es un problema relacionado con la implementación de MySQL que trunca la entrada en lugar de generar un error y bloquear la consulta.
Entonces, ¿la vulnerabilidad de truncamiento de SQL es un problema en el DBMS (MySQL) o en la aplicación web que no comprueba la longitud de la cadena?
Instalé la última versión de MySQL (5.5) para realizar algunas pruebas y, aparentemente, si el valor insertado excede el ancho de la columna, recibo un error:
Error: Data too long for column 'name' at row 1
y la consulta no se realiza. Esto me sugiere que MySQL ahora implementa una mejor comprobación de la longitud de entrada y, por lo tanto, la aplicación web no debería ser responsable de esta comprobación. ¿Qué me estoy perdiendo?