Alternativas al uso de autocomplete en formularios
- 29 de Julio 2008
- HTML, Javascript, Seguridad
El autocompletado de formularios es una característica de los navegadores que permite guardar datos introducidos en formularios para facilitar el posterior rellenado automático. Aunque esta opción puede ser desactivada desde las preferencias del navegador y en el momento de enviar un formulario aparece un cuadro de diálogo preguntando si se desean guardar los datos introducidos, hay casos en los que se hace necesario impedir que el navegador almacene estos datos por razones de seguridad. Esto ocurre normalmente en webs de entidades bancarias.
Para estos casos es frecuente usar el atributo no estándar (propietario de Microsoft) autocomplete con el valor off, tanto en elementos input como en elementos form si se desea aplicar esta característica a todos los campos de un formulario.
Debido al uso extendido de autocomplete y a que los navegadores basados en Gecko tienen la característica de autocompletar formularios activa por defecto desde el año 2000, estos también adoptaron el soporte para autocomplete a partir del año 2001 (Netscape 6.2)
A pesar de que el uso de autocomplete no es una garantía completa de seguridad, ya que navegadores como Opera, OmniWeb o ELinks lo ignoran por completo y versiones antiguas de navegadores basados en Gecko presentan un curioso bug con campos cuyo atributo name sea “Name”, “Address” o cualquier variante de estos literales, se recurre y se seguirá recurriendo al uso de este atributo no estándar, ya que html no dispone de ningún atributo equivalente y parece mantenerse la creencia de que es una medida efectiva de seguridad por parte sobretodo de los bancos, que continúan usándolo mayoritariamente.
El hecho de que un simple plugin pueda anular por completo la función de autocomplete, debería poner en cuestión su uso:
Some sites, including many banks and a few other sites such as Yahoo Mail and Microsoft Passport, tell browsers not to remember passwords for visitors using autocomplete=”off”. This bookmarklet makes the browser ignore autocomplete=”off” temporarily, allowing you to save passwords even on sites that use autocomplete=”off”.
Benjamin Hawkes-Lewis ofrece algunas soluciones y posibles alternativas al uso de autocomplete en la wiki de Mozilla, si bien ninguna de ellas es la solución definitiva al problema.
Las soluciones propuestas pasan por el uso de un doctype propio en el que se añade el atributo autocomplete de manera que el html resultante es válido. Ejemplo de documento html con doctype personalizado.
Esta solución sin embargo, no es válida para documentos xhtml, sólo para html. Para xhtml propone el uso de un microformato o de un atributo en un documento xhtml modularizado.
Añadir el atributo autocomplete mediante javascript es una solución cuya única ventaja es mantener un html válido.
Por último ofrece una alternativa que consiste en la generación de un valor aleatorio mediante un lenguaje de servidor para el atributo name de elementos input, de manera que, aunque los datos introducidos en estos campos puedan ser guardados por el navegador, nunca se presenten automáticamente al tener un valor diferente cada vez que se solicita el formulario. Si el usuario elige en este caso guardar los datos que ha introducido, siempre estarán disponibles para quien se empeñe en encontrarlos, por lo tanto la seguridad dependerá en última instancia de la decisión del usuario al enviar el formulario.
Fuentes
