Addaw, ir a inicio Donar

Técnica Técnicas generales WCAG 2.2

G181Conservar los datos del formulario al volver a iniciar sesión

Nombre oficial en el W3C: Codificar los datos del usuario como datos ocultos o cifrados en una página de re-autenticación

En pocas palabras

Si la sesión caduca mientras alguien rellena un formulario, al enviarlo se le pide entrar de nuevo. Los datos se pasan ocultos a la página de acceso y vuelven al formulario al identificarse. Así no se pierde nada y el servidor no tiene que guardar esos datos.

Por qué es importante

Muchas webs con acceso privado cierran la sesión tras un rato sin actividad. Las personas que escriben despacio o usan productos de apoyo pueden tardar más de ese tiempo en rellenar un formulario.

Si al volver a entrar se pierde lo escrito, tienen que repetirlo todo. Puede pasar una y otra vez, y no terminar nunca un pedido o una solicitud.

Cómo se hace

  1. Cuando llegue un envío con la sesión caducada, no descarte los datos.
  2. Muestre la página de acceso con un aviso claro: «Su sesión ha caducado. Vuelva a identificarse para enviar sus datos».
  3. Incluya los datos del formulario como campos ocultos en esa página de acceso, sin guardarlos en el servidor.
  4. Tras identificarse, envíe los datos o muestre el formulario relleno para que el usuario lo revise.
  5. Si los datos son sensibles, protéjalos durante el paso: conexión cifrada (HTTPS) y, si hace falta, cifrado adicional.
  6. Si el usuario no consigue identificarse, descarte esos datos.

Cómo comprobarlo

  1. Inicie sesión y empiece a rellenar un formulario.
  2. Espere a que la sesión caduque y envíe el formulario.
  3. Vuelva a identificarse cuando se lo pida.
  4. Compruebe que puede terminar el proceso sin perder ningún dato.
  5. Confirme con el equipo técnico que los datos no se guardan en el servidor durante ese paso.
Ver el texto completo del W3C (traducción al español)

Esta es una traducción no oficial al español de la técnica G181 de Techniques for WCAG 2.2, del W3C. Puede contener errores. El único documento oficial y normativo es la versión original en inglés, publicada en el sitio web del W3C.

Aplicabilidad

Páginas que requieren la autenticación del usuario en las que el tiempo disponible para enviar datos es limitado.

Descripción

Los servidores web que requieren la autenticación del usuario a menudo finalizan la sesión tras un periodo de tiempo establecido si no hay actividad por parte del usuario. Si el usuario no es capaz de introducir los datos con suficiente rapidez y la sesión caduca antes de que los envíe, el servidor exigirá una nueva autenticación antes de continuar. Cuando esto ocurre, el servidor pasa (como datos ocultos) la información del formulario a la página que se utiliza para la re-autenticación. Después, cuando el usuario se vuelve a autenticar, el servidor puede utilizar la información transmitida desde la página de re-autenticación para enviar el formulario directamente o para presentar una página que incluya los datos que van a enviarse, de modo que puedan revisarse. Con esta técnica, el servidor no tiene que almacenar en el servidor ningún dato enviado por el usuario. Se trata de una técnica importante en aquellos casos en los que es ilegal o supone un riesgo de seguridad que el servidor almacene información temporalmente. También resulta útil porque libera al servidor de tener que mantener la información almacenada y volver a vincularla con la sesión recién autenticada.

Si los datos que envían los usuarios son sensibles o presentan un riesgo de seguridad, los autores deben considerar el proceso utilizado para pasar los datos a la página de re-autenticación y, tras la re-autenticación, a la página que procesará los datos originales, con el fin de garantizar que los datos están protegidos.

Ejemplos

  • Un usuario ha iniciado sesión para usar un wiki y comienza a editar una página. El tiempo que tarda en completar las modificaciones supera el tiempo que el servidor permite de inactividad de la sesión. Cuando el usuario envía las modificaciones, se le notifica que la sesión ha caducado y se le redirige a una página de inicio de sesión. El script que gestiona el envío original del formulario pasa las modificaciones como una variable a la página de inicio de sesión y, cuando el usuario inicia sesión correctamente, devuelve las modificaciones del usuario al script que gestiona los envíos de formularios, y las modificaciones se procesan como si no hubiera caducado la sesión.
  • Un usuario había iniciado sesión en un sitio de compras seguro y rellena parte de la información de un formulario de pedido. Por motivos de seguridad, la sesión caduca a los 30 minutos, pero el usuario no envía el formulario hasta 45 minutos después de cargar la página. Se informa al usuario de la caducidad y se le pide que inicie sesión de nuevo. Si el usuario inicia sesión correctamente, se le presenta el formulario de pedido con todos los datos introducidos previamente, y el usuario puede revisar su envío y enviar el formulario. Si el inicio de sesión no se completa correctamente, el servidor descarta los datos del formulario.

Pruebas

Procedimiento

En un sitio que requiere que el usuario inicie sesión para enviar datos:

  1. Iniciar sesión y comenzar la actividad con límite de tiempo.
  2. Dejar que la sesión caduque.
  3. Enviar los datos.
  4. Volver a autenticarse.
  5. Comprobar que el proceso puede continuar y completarse sin pérdida de datos, incluidos los datos originales y cualquier cambio realizado tras la re-autenticación.
  6. Comprobar que el proceso utilizado para guardar la información enviada en el paso 3 no almacena los datos en el servidor. (Nota: esto requiere conocer la tecnología y las funcionalidades utilizadas para implementar la técnica.)

Resultados esperados

  • Las comprobaciones n.º 5 y n.º 6 son verdaderas.

Cómo lo comprobamos en ADDAW

En cada auditoría de ADDAW revisamos esta técnica página a página y le entregamos los errores con capturas y la forma de corregirlos.

Solicitar una auditoría

Basado en la técnica G181 del W3C (WCAG 2.2). Explicación y ejemplos: ADDAW. Traducción no oficial del texto del W3C © W3C, licencia de documentos del W3C. ¿Ha visto un error? Escríbanos.