Sono venuto a conoscenza della vulnerabilità di troncamento SQL di cui non ero a conoscenza. Sono a conoscenza del fatto che questa vulnerabilità si basa sul fatto che MySQL tronca il valore di una "query di inserimento" se il valore supera la larghezza della colonna corrispondente. Il primo aspetto di questa vulnerabilità è CVE-2008-4106 che segnala il problema nel CMS WordPress. Il CVE segnala che il problema era relativo a un'implementazione di WordPress. Ma avrei detto che questo è un problema relativo all'implementazione MySQL che tronca l'input invece di generare un errore e bloccare la query.
Quindi la vulnerabilità del troncamento SQL è un problema nel DBMS (MySQL) o nell'applicazione web che non controlla la lunghezza della stringa?
Ho installato l'ultima versione di MySQL (5.5) per fare alcuni test e apparentemente se il valore inserito supera la larghezza della colonna, ricevo un errore:
Error: Data too long for column 'name' at row 1
e la query non viene eseguita. Questo mi suggerisce che MySQL ora implementa un controllo migliore per la lunghezza dell'input e quindi l'applicazione web non dovrebbe essere responsabile di questo controllo. Cosa mi manca?