Ciao a tutti.
Ho questo js che mi verifica (e limita) la quantità di caratteri in una textarea:
codice:
function check_textarea(){
var max_length = 160;
var campo = document.getElementById('_testo').value.length;
if (campo >= max_length){
alert("La descrizione dell\'annuncio può contenere massimo " + max_length + " caratteri.");
document.getElementById('_testo').value = document.getElementById('_testo').value.substring(0,max_length);
}
}
Se io inserisco testo a mano, arrivato a 160 caratteri mi spunta giustamente la finestra di avviso.
Se io incollo un testo più lungo di 160 caratteri, mi ricompare giustamente la stessa finestra che quando chiudo mi elimina il testo eccedente.
Fin qui tutto bene.
Però mi ritrovo sul db alcuni record ove nella stessa finestra sono stati inseriti migliaia di caratteri, come se fosse stato bypassato il controllo.
I caratteri (incollati) presumo arrivino da un qualche documento Word o simile, il testo infatti inizia con
codice:
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves />
<w:TrackFormatting />
<w:HyphenationZone>14</w:HyphenationZone>
....
Ora mi chiedo, come è possibile bypassare il controllo? Oltretutto non si tratta di testo pseudo SPAM, bensì di testo logico ed in linea con quello che ci si aspetta in quella textarea.
Siccome in quella textarea non devono venir incollati tag html, all'atto di inserire il testo nel db, via PHP, filtro con strip_tags(valore_campo).
Ma ciò nonostante mi ritrovo con qualcuno che "riesce" a bypassare tutti e due i controlli, lato client e lato server.
Idee su come uccidere chi combina sto disastro?