Scrivere un indirizzo email senza che i bot lo catturino [cerotto]

Bè almeno ci si prova :)

Uno dei problemi relativi allo scrivere il proprio indirizzo email in chiaro in una pagina Web è dovuto al fatto che gli spambot sono sempre in agguato.

Una soluzione semplicissima che avevo letto tempo fa era quella di farsi una semplice immaginetta trasparente con l'indirizzo scritto su, funziona egregiamente ma certo non è molto accessibile per un non vedente e spesso anche per un ipovedente che non può ingrandire un'immagine necessariamente troppo piccola senza perderne la definizione.

Ne si può ovviare alla cosa scrivendo l'indirizzo in chiaro nell'attributo alt, dato che gli spambot non vanno per il sottile e semplicemente cercano per prima cosa il carattere @ ovunque esso si trovi, quindi sarebbe una soluzione inutile e dannosa.

Allora come fare?

Semplice scrivendo l'indirizzo in entità di carattere, certo non ha la pretesa di essere perfetto e a "risolverlo" non ci vuole poi un gran che per uno spambot intelligente, ma è pur sempre un buon inizio, inoltre per ora ovunque l'ho usato non ho ancora ricevuto spam sugli indirizzi pubblicati.

Il solito pierino avrà già pensato: "seee e io mi sbatto a scrivere in codici caratteri un indirizzo che magari nemmeno è mio", bravo! Ottima pensata infatti ecco che arriva il PHP a risolvere il problema, prima due funzioncine che convertono qualsiasi stringa di indirizzo email nei corrispettivi codici carattere:

        function makeASCII($char=0){
   return '&#'.ord($char).';';
   } // makeASCII()

        function encodeEmail($email){
      /*** check if the filter has a var ***/
      if(filter_var($email, FILTER_VALIDATE_EMAIL) !== FALSE) {
         /*** split the email into single chars ***/
         $charArray = str_split($email);
         /*** apply a callback funcion to each array member ***/
         $encodedArray = filter_var($charArray, FILTER_CALLBACK, array('options'=>"makeASCII"));
         /*** put the string back together ***/
         $encodedString = implode('',$encodedArray);
         return $encodedString;
      } else {
         return false;
      }
   } // encodeEmail()

Il suo uso è semplice, basta richiamare la encodeEmail($email) e tutto viene codificato in automatico. Ecco un esempio pratico:

nella seziopne PHP:

if (!$emailInfo = encodeEmail('informazioni@miosito.it')) $emailInfo = 'informazioni@miosito.it';

la codifica complessa con il ciclo di controllo serve a far sì che se l'indirizzo email è ingestibile comunque viene scritto anche se in chiaro, semplificando si può ovviamente eliminare :)

nella sezione xhtml:

<a href="mailto:<?=$emailInfo;?>" title="indirizzo email"><?=$emailInfo;?></a>

nel codice della pagina vi trovate una roba di questo tipo:

<a href="mailto:&#105;&#110;&#102;&#111;&#114;&#109;&#97;&#122;&#105;&#111;&#110;&#105;&#64;&#103;&#101;&#110;&#101;&#97;&#108;&#111;&#103;&#105;&#97;&#105;&#116;&#97;&#108;&#105;&#97;&#110;&#97;&#46;&#105;&#116;" title="indirizzo email">&#105;&#110;&#102;&#111;&#114;&#109;&#97;&#122;&#105;&#111;&#110;&#105;&#64;&#103;&#101;&#110;&#101;&#97;&#108;&#111;&#103;&#105;&#97;&#105;&#116;&#97;&#108;&#105;&#97;&#110;&#97;&#46;&#105;&#116;</a>

che è indubbiamente più lungo, ma molto meno appetibile agli spambot e inserire qualche carattere in più non è un problema nemmeno con le connessioni lente, specialmente se possiamo eliminarci un po' di spam nella nostra o altrui casella email.

inviato 8 anni fa
Marco Grazia
modificato 8 anni fa
X 0 X

non si è al sicuro nemmeno nelle aree riservate?

suggerirei di mettere in rilievo questo topic

risposto 8 anni fa
larchitetto
X 0 X

Ciao, tenevo solo a fare una piccola precisazione:

l'if (come if ... else o lo switch) non sono cicli di controllo bensì strutture di controllo

:bye:

risposto 8 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Ciao, tenevo solo a fare una piccola precisazione:

l'if (come if ... else o lo switch) non sono cicli di controllo bensì strutture di controllo

:bye:

Sei troppo precisino su su. L'ho riscritto quattro volte ed era buona la prima, così ho scritto l'ultima :D

Architè: Le aree riservate sono sicure, ma ovviamente dipende dal grado di riservatezza.

risposto 8 anni fa
Marco Grazia
modificato 8 anni fa
X 0 X

<placeholder>

<ot>

    ;D Ihi sono sempre lì con a starti con il fiato sul collo come un avvoltoio :D

</ot>

Il post lo completo domani mattina chiedo venia, Notte.

</placeholder>

risposto 8 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Hei condor sei Aldo, Giovanni o Giacomo?  ;D

PS cerchiamo di non svaccarlo troppo questo topo  :)

risposto 8 anni fa
Marco Grazia
X 0 X

Per rispondere all'Architetto posso dire che come ogni cassaforte che si rispetti il motivo per cui le si svaligia è il loro contenuto.

Se c'è un'area riservata che fa gola a tutti prima o poi si riuscirà a scardinarla, ovviamente come nell'esempio della cassaforte, se la porta è quella del bagno a scardinarla sono buoni tutti quindi la sicurezza dei dati in essa contenuti dipende dalla porta.

Uno spammer non ha in genere interesse alle aree riservate perché sa che non contengono roba che a lui interessa, ad uno spammer interessano indirizzi email a cui inviare il suo materiale non foto porno :)

Ma se stiamo parlando di facebook (è un esempio) l'interesse cresce perché lì ci sono dati che ad uno spammer interessano cioè dati personali degli utenti.

Quindi la sicurezza di un'area riservata è inversamente proporzionale a ciò che contiene.

risposto 8 anni fa
Marco Grazia
X 0 X

mmm devo riflettere quanto scritto :D

poi magari dopo mi verran delle domande lol

cmq ne ho una a caldo: se dentro la cassaforte ci son indirizzi email, deve prima superare la porta della cassaforte, e poi dopo ricavare gli indirizzi... no?

Quindi la sicurezza di un'area riservata è inversamente proporzionale a ciò che contiene.

non dovrebb'esser direttamente proporzionale? + dati + sicurezza? altrimenti non ho capito :S

grazie

risposto 8 anni fa
larchitetto
X 0 X

Uhm in effetti quella frase è scritta male, intendevo dire che più il bene da proteggere è importante e più l'area che lo protegge dev'essere forte, ovviamente questo significa l'esatto contrario di ciò che ho scritto.

Riguardo alle tue domande tieni presente che ci sono diversi aspetti sulla sicurezza informatica da tenere sempre presenti. Prima di tutto molti credono che basta un "muro" per tenere fuori gli intrusi, è il concetto più comune e anche il più pericoloso.

Sfasciato il muro sei libero di andare e fare quello che vuoi è la situazione più paradossale ma anche la più frequente, i muri costano risorse e denaro, quindi si tiene a farne di altissimi e invalicabili ma poi si cerca sempre che siano essi a toglierci dai guai e quindi, di demandare a chi gestisce quel muro tutte le nostre angoscie in fatto di sicurezza, in altre parole, se il muro crolla la colpa non è nostra ma del muratore/guardiano che non è stato capace di controllare bene.

Oggi in Italia per applicazioni serie si deve necessariamente fare il protocollo della sicurezza che consta in un documento in cui viene descritto come si è messa in sicurezza l'area da proteggere e cosa si deve fare per mantenerla tale, in questo modo, si ecita il solito scaricabarile quando poi il muro crolla.

Ovvio che il muro sarà tanto più solido e l'area che contiene tanto più complessa quanto più delicati saranno i dati da proteggere.

Non farti influenzare però dai film su improbabili persone che digitando caratteri a casaccio su una tastiera riescono a penetrare qualsiasi cosa giri su Internet, è una caSSata bella e buona, ci sono areee così ben protette che nessuno riesce a penetrare, ma immagino non sia questo il tuo caso :)

risposto 8 anni fa
Marco Grazia
X 0 X

buona la cassata (è delle mie zone)... :P

ehm concorodo con quanto scritto...

indi l'espressione diventerebbe la protezione del sistema è direttamente proporzionale all'importanza dei dati da proteggere...

bon, anche le aree riservate vanno messe in sicurezza :D

grazie

risposto 8 anni fa
larchitetto
X 0 X

Ma un'area riservata in quanto tale deve essere sicura, non crei un'area riservata insicura è un controsenso in termini.

Credo che se questa discussione debba continuare però sarebbe meglio tagliarla in quest'ultima parte ed aprire un altro argomento in un'altra area del forum o si snatur il messaggio iniziale che era quello sulla sicurezza degli indirizzi email in chiaro nelle pagine Web, parlare a caso di sicurezza informatica non è l'argomento giusto.

risposto 8 anni fa
Marco Grazia
X 0 X

concordo.

ultima cosa: un'area riservata può esser sicura, ma chi mi dice che lo sarà abbastanza? XD

risposto 8 anni fa
larchitetto
modificato 8 anni fa
X 0 X
ultima cosa: un'area riservata può esser sicura, ma chi mi dice che lo sarà abbastanza? XD

La pratica quotidiana.

Non per nulla ci sono persone pagate da aziende per "bucare" i propri siti.

Interessante è scoprire cosa ha da dire al riguardo Kevin Mitnick

risposto 8 anni fa
Marco Grazia
modificato 8 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda