Salta ai contenuti

Offuscare i Dati

La modalità di offuscamento del widget ti aiuta a proteggere le informazioni sensibili dai bot. Un caso d’uso comune è offuscare gli indirizzi email sui siti web, impedendo ai bot automatizzati di raccoglierli.

Casi d’Uso

  • Nascondere Indirizzi Email e Numeri di Telefono: Proteggi indirizzi email e numeri di telefono sui siti web per impedire ai bot automatizzati di raccogliere queste informazioni.

  • Mascherare Identificatori Personali: Nascondi identificatori personali come nomi utente, ID o numeri di conto che potrebbero essere utilizzati per scopi malintenzionati.

  • Offuscare Collegamenti per il Download: Nascondere i collegamenti diretti per i file o il software scaricabili per prevenire l’accesso non autorizzato o il web scraping.

Come Funziona

Simile al meccanismo di proof-of-work usato per le sfide ALTCHA, l’offuscamento utilizza un approccio di proof-of-work (PoW) basato su cifratura simmetrica AES.

I dati offuscati forniti al widget vengono crittografati utilizzando una chiave di cifratura e un vettore di inizializzazione basato su un numero casuale. Proprio come la sfida PoW, il client deve iterare su una serie di numeri per trovare un vettore di inizializzazione corrispondente.

La chiave di cifratura è condivisa con il client e, se non specificata, predefinita a una stringa vuota. L’obiettivo non è quello di fornire un algoritmo crittografico sicuro, ma di utilizzare un meccanismo di proof-of-work che permette a qualsiasi dispositivo capace di decodificare i dati nascosti.

Complessità

La complessità della decrittazione dipende dall’intervallo di numeri utilizzato. Per impostazione predefinita, l’intervallo è da 0 a 10.000 e può essere regolato utilizzando lo script. Il tempo di calcolo è circa il 35% maggiore rispetto alla sfida PoW.

Configurazione

Dopo aver integrato il widget e abilitato il plugin di offuscamento, configura la stringa obfuscated nel widget. Nota che la modalità di offuscamento non utilizza challengeurl:

contatto.html
<p>Invia una email e ti risponderemo presto.</p>
<div>
<span>Email:</span>
<altcha-widget
obfuscated="P7bJsUgzxP416d1voeF/QnQOD5g7GItB/zdfkoBrKgZK4N4IYkDJqg=="
floating
>
<button>Clicca per rivelare</button>
</altcha-widget>
</div>

Qualsiasi elemento all’interno del tag <altcha-widget> verrà visualizzato come un segnaposto per i dati offuscati. Il widget rileva automaticamente gli elementi cliccabili, come i tag button e a, che, quando cliccati, avviano il processo di verifica e de-offuscazione. Puoi personalizzare quale elemento funge da pulsante di azione utilizzando l’attributo data-clarify-button.

Si consiglia di utilizzare l’attributo floating per un’esperienza utente più fluida.

Demo

Il codice sopra renderà qualcosa di simile a questa demo:

Invia una email e ti risponderemo presto.

Email:

Clicca sul link Clicca per rivelare per visualizzare effettivamente l’indirizzo email.

Il widget può mascherare qualunque dato testuale, ecco una demo con un indirizzo offuscato:

Il nostro Indirizzo:

Generare Dati Offuscati

Per generare dati offuscati per il widget, utilizza l’offuscator:

Inserisci un indirizzo email, un numero di telefono o qualsiasi dato da offuscare. Usa `mailto:` o `tel:` per link cliccabili.

In alternativa, utilizza lo script disponibile su GitHub:

Terminal window
bun run scripts/obfuscate.ts "mailto:hello@example.com"

Questo comando restituisce dati codificati in base64 che possono essere utilizzati direttamente nell’attributo obfuscated.

Consulta lo script per le opzioni di personalizzazione come modificare l’intervallo di numeri casuali o utilizzare una chiave di cifratura personalizzata.

Chiavi di Crittografia Personalizzate

La chiave di crittografia predefinita è una stringa vuota. Per utilizzare una chiave di crittografia personalizzata durante l’offuscamento dei dati, configura la chiave utilizzando lo script.

Per applicare una chiave di crittografia personalizzata, aggiungila ai dati offuscati nel formato <base64>?key=<my_key> e imposta l’intera stringa come attributo obfuscated.

In alternativa, è possibile configurare l’attributo obfuscated come ?key=(prompt) (o specificare un’etichetta di prompt personalizzata con ?key=(prompt:Inserisci Password)). Ciò chiederà all’utente di inserire la chiave prima di decodificare i dati, garantendo che solo gli utenti che conoscono la chiave possano accedere alle informazioni nascoste.