Seguridad y privacidad

Cuando creas un formulario, trabajas con datos del usuario. Tu principal preocupación debe ser garantizar que los datos del usuario se mantengan privados y se transfieran de manera segura. Veamos qué se puede hacer.

Asegúrate de que tu formulario sea seguro

Como primer paso, asegúrate de solicitar la menor cantidad de datos posible. No solicites datos que no necesites y siempre pregunta si necesitas todos los datos solicitados. Menos datos significa menos riesgo, menos costo y menos responsabilidad. Además, la reducción de la cantidad de campos en un formulario hace que sea menos complejo y fácil de completar, y puede reducir los porcentajes de abandono.

Usa siempre HTTPS, en especial para las páginas que incluyen un formulario. Con HTTPS, los datos se encriptan cuando provienen del servidor y cuando regresan al servidor.

Supongamos que estás sentado en una cafetería usando una red Wi-Fi pública. Abres un sitio de comercio electrónico y completas la información de tu tarjeta de crédito para hacer una compra. Si el sitio web usa HTTP, cualquier persona (que tenga la capacidad de hacerlo) en la misma red Wi-Fi pública podría ver la información de tu tarjeta de crédito. Si el sitio web utiliza HTTPS, los datos están encriptados y, por lo tanto, están protegidos de cualquier persona que intente acceder a ellos.

En tu sitio, también debes asegurarte de redireccionar las solicitudes HTTP a HTTPS. Obtén más información para redireccionar todo el tráfico a HTTPS.

Ayuda a los usuarios a mantener sus datos privados

En el primer módulo, aprendiste sobre dos formas posibles de transferir datos: a través de una solicitud GET y a través de una solicitud POST.

Con una solicitud GET, los datos del formulario se incluyen como una cadena de consulta en la URL de la solicitud. Si envías un formulario que usa una solicitud GET, el navegador agrega la URL de la solicitud, incluidos los datos del formulario, a tu historial de navegación. Es conveniente si deseas buscar envíos de formularios anteriores, por ejemplo, un formulario de búsqueda. Para nada bueno, si se envían datos sensibles y todos los usuarios con acceso a tu historial de navegación o a tu red local pueden ver esta información.

Usa las solicitudes del POST para cada formulario en el que se puedan enviar datos personales o sensibles. De esta manera, los datos solo son visibles para la secuencia de comandos de backend que los procesa.

¿Qué pasa con guardar y procesar datos personales directamente en el navegador? Puedes usar el almacenamiento del cliente, por ejemplo, localStorage, para guardar datos personales en el navegador. Con respecto a la privacidad, esto no es lo ideal. Recuerda que todas las personas que tienen acceso a tu navegador pueden leer esta información. Solo debes almacenar valores encriptados de datos personales.

Asegúrate de que los usuarios puedan registrarse y acceder de forma segura

La autenticación de la cuenta de usuario es un problema complejo en términos de privacidad y seguridad. Puede ser mejor usar un proveedor de identidad de terceros, en lugar de compilar tu propio sistema de autenticación seguro.

Obtén más información sobre las prácticas recomendadas para la autenticación de cuentas y la administración de contraseñas.

Ayuda a los usuarios a acceder a sus datos personales

Muchas regiones tienen leyes y reglamentaciones relacionadas con la protección y la privacidad de los datos, incluidas la CCPA en California y la PDPA en la India. Todos los sitios web disponibles en la Unión Europea (UE) deben cumplir con el Reglamento General de Protección de Datos (GDPR), incluso si el sitio no está ubicado en la UE.

El GDPR establece los lineamientos para la recopilación y el procesamiento de información personal de las personas que viven en la UE. Se requiere el consentimiento para procesar datos personales, los usuarios pueden solicitar información personal que almacenas en cualquier momento, y tú tienes que anunciar oficialmente la filtración de datos. Es algo bueno para el usuario, ya que ayuda a garantizar que se respete su privacidad. Obtén más información sobre el GDPR.

Asegúrate de que tus usuarios sepan cómo planeas procesar los datos personales. La transparencia es la clave para la confianza. Los usuarios siempre deben poder acceder, modificar y borrar todos los datos que guardaste para ellos.

Garantizar que los usuarios puedan actualizar sus datos personales

Facilita a los usuarios la actualización de sus datos personales, como contraseñas, direcciones de correo electrónico y nombres de usuario. Notifica a los usuarios sobre los cambios en sus datos personales almacenados y asegúrate de que puedan revocar los cambios. Por ejemplo, envía un correo electrónico a la dirección anterior y a la nueva después de que los usuarios cambien su dirección de correo electrónico.

Facilita a los usuarios la eliminación de su cuenta, incluidos todos los datos asociados, y, cuando corresponda, permite la descarga de datos. La eliminación de cuentas es un requisito legal en algunas regiones.

Solicitar un paso de autenticación adicional, por ejemplo, volver a ingresar la contraseña actual, para ver o cambiar información personal en tu sitio

Obtén más información: Prácticas recomendadas sobre la privacidad de las aplicaciones web.

Asegurarse de que todos los datos estén en buen estado

En un módulo anterior, aprendiste sobre la validación en el frontend. La validación de frontend es importante, pero es posible que los usuarios aún puedan enviar datos no válidos. Como siguiente paso, también debes validar los datos en el backend antes de guardar los datos en tu base de datos. Esto garantiza que no se guarden datos no válidos en tu base de datos.

La validación ayuda a garantizar que el formato de datos sea válido, pero aun así no debes confiar en los datos que ingresan los usuarios. ¿Cómo puedes generar los datos de forma segura? Para evitar la secuencia de comandos entre sitios (XSS) y asegurarte de que sea seguro incluir todos los datos en HTML, debes limpiarlos antes de generarlos.

Obtén más información sobre cómo limpiar datos antes del resultado y, cuando sea posible, usa la API de Sanitizer.

Asegúrate de que todos los envíos provengan de personas reales.

Para proteger tus datos, tienes varias opciones que impiden el envío de spam por parte de bots.

La primera opción es usar un servicio como reCAPTCHA para distinguir entre personas reales y bots. Para ello, debes incluir un fragmento de JavaScript en tu página y agregar atributos adicionales al botón Enviar.

reCAPTCHA realiza varias verificaciones para determinar si eres un ser humano. Por ejemplo, podría pedirte que identifiques imágenes. Un software automatizado, como un bot, no puede superar estos desafíos y no puede enviar el formulario.

Una maceta de miel

Otra opción es usar un llamado “honeypot”: un campo de formulario visualmente oculto. Los humanos no verán un campo de honeypot, pero los bots lo rellenarán. En el backend, la secuencia de comandos de procesamiento puede verificar si se completó el campo. Si es así, es probable que el envío provenga de un bot, y puedes ignorarlo.

También hay servicios como Akismet, que pueden ayudarte con la protección contra el spam. El filtro de Akismet combina la información sobre el spam que se capta en todos los sitios participantes y, luego, usa esas reglas para bloquear el spam en el futuro. Akismet es transparente para el usuario y capta la mayor parte del spam.

Verifica tus conocimientos

Pon a prueba tus conocimientos sobre seguridad y privacidad

¿Cuál es el método preferido para transferir datos personales usando formularios?

Una solicitud POST.
🎉
Una paloma portadora.
Vuelve a intentarlo.
Una solicitud GET.
Vuelve a intentarlo.
HTTPS
Vuelve a intentarlo.

¿Cómo puedes evitar el spam?

Captcha
🎉
Un campo de formulario de Honeypot.
🎉
Servicios de spam.
🎉
Solo sirven platos vegetarianos.
Vuelve a intentarlo.

Recursos