Hay cosas en el mundo de la informática que se dan por sentadas: que las computadoras duplican su densidad de transistores cada dos años, que dos monitores son mejores que uno, que los algoritmos son más importantes que la tecnología, y que no se debe validar del lado del cliente. A veces ocurre, sin embargo, que de pronto aparece alguien y te dice algo como “¿cómo van a ser mejor dos monitores que uno solo?“, o peor aún, que valida sus páginas con Javascript y se conforma con ello.
Para aquellos diseñadores que no tengan muuucha experiencia en el tema, o peor aún, que están leyendo este artículo porque ya validan así sus datos y están esperando una frase salvadora (no va a pasar), les explico: Javascript, a diferencia de lo que pongamos en nuestro código en el servidor, se ejecuta en la máquina del usuario, y como a ningún usuario se le puede decir qué correr y qué no, deshabilitarlo es tan fácil como hacer dos click.
Por supuesto, acá siempre hemos preferido los ejemplos concretos a la teoría, así que vamos allá. Tomemos como ejemplo el sitio web de la tira cómica Foxtrot. Abajo tenemos una captura de pantalla del sitio en un día común y corriente:

Supongamos ahora que queremos ver la tira de la semana anterior. Hacemos click en Atrás y…

…ups, no podemos, tenemos que registrarnos. Ahora, hay una cuestión interesante: si prestan atención, en el área negra de fondo se puede apreciar la tira que queremos ver, así que debe existir alguna manera de verla…
Pensemos: la imagen se pone encima usando CSS, seguro, al igual que el estilo del resto de la página. ¿Qué pasaría si lo desactivamos? Veamos qué pasa si le sacamos el estilo (en Opera, Ver -> Estilo -> Modo de usuario):

Aquellos que no entiendan lo que están viendo, notarán que hay símbolos por todos lados, palabras sueltas (presten especial atención al texto del cartel que antes nos prohibía apreciar al fondo de la captura de pantalla), en definitiva un horror. Lo que ocurre aquí es que todo lo que usualmente se ve bonito (con colores, imágenes de fondo, etc) aquí se ve sin adornos. Y como el fondo negro semitransparente es un adorno, adiós restricción y hola tira de Foxtrot de la semana pasada.
Este ejemplo particular es una pavada, pero piensen en aquellos sitios que utilizan Javascript para asegurarse que la dirección de mail sea válida, o que en un campo únicamente se ingresen números, y la cosa pasa a ser preocupante.
¿La solución? Ya sea que usemos PHP o ASP, es en ese código donde deben estar los chequeos de validación (del tipo “if (password1 == password2) then” y cosas así. Pueden decir “ah, pero eso es mucho trabajo!“, a lo cual responderé que sí es mucho trabajo, pero no tanto como tener que levantar un sistema que fue comprometido, o lisa y llanamente borrado.