Saltearse al contenido

Ofuscación de Datos

El modo de ofuscación del widget te ayuda a proteger información sensible de los bots. Un caso de uso común es ofuscar direcciones de correo electrónico en sitios web, lo que impide que los bots automatizados recopilen esta información.

Casos de Uso

  • Ocultar Direcciones de Correo Electrónico y Números de Teléfono: Protege direcciones de correo electrónico y números de teléfono en sitios web para evitar que los bots automatizados recopilen esta información.

  • Enmascarar Identificadores Personales: Oculta identificadores personales como nombres de usuario, ID o números de cuenta que podrían ser utilizados con fines maliciosos.

  • Ofuscar Enlaces de Descarga: Oculta enlaces directos de descarga de archivos o software para evitar el acceso no autorizado o la recopilación de datos.

Cómo Funciona

Similar al mecanismo de prueba de trabajo utilizado para los desafíos de ALTCHA, la ofuscación emplea un enfoque de prueba de trabajo (PoW) basado en encriptación simétrica AES.

Los datos ofuscados proporcionados al widget se encriptan utilizando una clave de encriptación y un vector de inicialización basado en un número aleatorio. Al igual que la PoW del desafío, el cliente debe iterar sobre un rango de números para encontrar un vector de inicialización coincidente.

La clave de encriptación se comparte con el cliente y, si no se especifica, se establece por defecto en una cadena vacía. El objetivo no es proporcionar un algoritmo criptográfico seguro, sino utilizar un mecanismo de prueba de trabajo que permita a cualquier dispositivo capaz descifrar los datos ocultos.

Complejidad

La complejidad de descifrado depende del rango de números utilizado. De forma predeterminada, el rango es de 0 a 10,000 y se puede ajustar utilizando el script. El tiempo de cálculo es aproximadamente un 35% mayor en comparación con la prueba de trabajo del desafío.

Configuración

Después de integrar el widget y habilitar el plugin de ofuscación, configure la cadena obfuscated en el widget. Tenga en cuenta que el modo de ofuscación no utiliza challengeurl:

contact.html
<p>Envíanos un correo electrónico y estaremos en contacto pronto.</p>
<div>
<span>Correo electrónico:</span>
<altcha-widget
obfuscated="P7bJsUgzxP416d1voeF/QnQOD5g7GItB/zdfkoBrKgZK4N4IYkDJqg=="
floating
>
<button>Haz clic para revelar</button>
</altcha-widget>
</div>

Cualquier elemento dentro de la etiqueta <altcha-widget> se mostrará como un marcador de posición para datos ofuscados. El widget detecta automáticamente los elementos clicables, como los tags button y a, que al hacer clic desencadenan el proceso de verificación y de-ofuscación. Puedes personalizar qué elemento servirá como botón de acción utilizando el atributo data-clarify-button.

Se recomienda utilizar el atributo floating para una experiencia de usuario más fluida.

Demostración

El código anterior mostrará algo similar a esta demostración:

Envíanos un correo electrónico y estaremos en contacto pronto.

Correo electrónico:

Haz clic en el enlace Haz clic para revelar para mostrar la dirección de correo electrónico real.

El widget puede enmascarar cualquier dato textual, aquí hay una demostración con una dirección ofuscada:

Nuestra Dirección:

Generación de Datos Ofuscados

Para generar datos ofuscados para el widget, utiliza el ofuscador:

Ingresa una dirección de correo electrónico, número de teléfono o cualquier dato para ofuscar. Utiliza `mailto:` o `tel:` para enlaces clicables.

Alternativamente, utiliza el script disponible en GitHub:

Ventana de terminal
bun run scripts/obfuscate.ts "mailto:hello@example.com"

Este comando genera datos codificados en base64 que se pueden usar directamente en el atributo obfuscated.

Consulta el script para opciones de personalización como modificar el rango de números aleatorios o utilizar una clave de encriptación personalizada.

Claves de Encriptación Personalizadas

La clave de encriptación predeterminada es una cadena vacía. Para utilizar una clave de encriptación personalizada al ofuscar datos, configura la clave utilizando el script.

Para aplicar una clave de encriptación personalizada, añádela a los datos ofuscados en el formato <base64>?key=<mi_clave> y establece la cadena completa como el atributo obfuscated.

Alternativamente, puedes configurar el atributo obfuscated como ?key=(prompt) (o especificar una etiqueta de indicación personalizada con ?key=(prompt:Ingrese Contraseña)). Esto solicitará al usuario que ingrese la clave antes de descifrar los datos, asegurando que solo los usuarios que conozcan la clave puedan acceder a la información oculta.