it-swarm.it

Modo di elencare l'indirizzo di posta elettronica "Contattaci" sul sito Web, ma ridurre la probabilità di spam?

Qual è un buon modo per elencare un indirizzo di posta elettronica "Contattaci" su un sito Web, riducendo al contempo la probabilità che venga spam?

Mettere l'indirizzo e-mail in un'immagine è la migliore tecnica o ce ne sono altri?

70
Chris W. Rea

Passo tutti i moduli di contatto attraverso un account Gmail usa e getta, che inoltra la posta al vero indirizzo e-mail. È gratuito, è facile e il rilevamento dello spam di Gmail è di prim'ordine.

Non richiede alcun ulteriore sforzo durante la creazione del sito Web e, se qualcosa ti attraversa, accedi all'account Gmail e contrassegnalo come spam.

È quindi possibile impostare la posta in arrivo di Gmail in modo da archiviare automaticamente tutto ciò che è stato inoltrato o addirittura eliminarlo se non si desidera conservare quella copia aggiuntiva.

54
Callan
30
Jason

La mia non risposta è di non farlo. I moderni sistemi di posta elettronica, come GMail e l'appliance antispam Barracuda, svolgono un ottimo lavoro nel filtrare lo spam. Qualsiasi barriera che metti tra te e i tuoi visitatori significa un livello inferiore di coinvolgimento e, a seconda del tipo di sito, una potenziale perdita di vendite.

Se sei preoccupato per gli utenti che non hanno installato il client di posta nativo o che non hanno il mailto: gestore impostato correttamente, allora hai una pagina Contattaci con ENTRAMBI l'indirizzo e-mail collegato e un modulo (senza CAPTCHA) e lascia che l'utente scelga.

Lo spamming è fastidioso, ma è il nostro onere a carico, non i nostri utenti.

20
JasonBirch

Usa il linguaggio naturale per scrivere l'indirizzo e-mail ...

Ex:

thatguy at gmail dot com

Saresti sorpreso di quanto sia più difficile scrivere un bot in grado di differenziare il linguaggio naturale rispetto alla scrittura di un bot che cerca solo il segno @ e regex un indirizzo normale.

Non è sicuro al 100% ma non è peggio dell'offuscamento e non alienerà gli utenti ipovedenti e/o gli utenti che hanno JavaScript disabilitato.

Aggiornamento: Ecco un esempio di questa tecnica in azione .

Aggiornamento 2:

Si scopre che qualcuno ha effettivamente fatto ricerche su questo e lo ha pubblicato online. Vedi messaggio SuperUser che descrive i risultati o l'articolo originale

18
Evan Plaice

Personalmente, non visualizzo gli indirizzi e-mail sui siti, ma invece ho un modulo di contatto facile da usare e accessibile, con un'indicazione di chi proviene l'email; consentire agli utenti di inviare e-mail ai proprietari dei siti e agli operatori, senza esporre gli indirizzi e-mail o passare da vari cerchi JavaScript, ecc.

Questo è spesso il modo migliore se il tuo filtro antispam non è così sofisticato.

12

usa css per nascondere un po 'di rumore dal testo reale (tutto in una riga, l'ho formattato per illustrare meglio la tecnica):

u<span class="spam">noise</span>ser
@<span class="spam">noise</span>
example<span class="spam">noise</span>
.com

e quindi usa questo piccolo frammento CSS:

.spam { display: none; }

se hai bisogno di contenuti mailto: validi, devi crearli tramite jscript nella dom, vedi alcune delle altre risposte per questo. ma non ne sono un grande amico.

9
akira

Quello che faccio è scrivere l'indirizzo e-mail come parole, racchiuso in un tag span: <span class="email">joe dot blow at gmail dot com</span>. Quindi viene eseguito uno script a livello di pagina, afferrando tali intervalli e sostituendo ciascuno con un collegamento e-mail costruito. Potrebbe non essere troppo oscuro, ma non ho avuto lamentele. Inoltre, se JavaScript è disabilitato, l'utente può comunque leggere il testo dell'intervallo effettivo.

8
Grant Palin

La migliore soluzione: sa un filtro antispam.

In realtà utilizzo Gmail per gestire il mio account di posta elettronica POP3 per la mia attività, perché è molto più semplice controllare la posta elettronica su computer diversi. I filtri antispam di Gmail sono i migliori al mondo.

Quindi puoi semplicemente visualizzare [email protected] come il tuo indirizzo e-mail e dimenticare lo spam.

8
DisgruntledGoat

usando la codifica html come &#649&#7854&#7575, il browser lo renderà come "abc"

7
ilhan

Un modo abbastanza buono, anche se non perfetto, è quello di creare l'indirizzo e-mail tramite JavaScript. La maggior parte dei ragni in cerca di e-mail non esegue javascript e quindi non trova un indirizzo e-mail leggibile.

Qui è solo un esempio di come potrebbe essere fatto.

5
txwikinger

Utilizzare una libreria grafica (come Gd che è supportata da PHP o simile) per creare dinamicamente immagini .png contenenti gli indirizzi e-mail.

Rispetto alla mia altra risposta questa soluzione è meno fastidiosa per gli utenti (ma non trasparente; non possono copiarla e incollarla ma devono riscriverla da zero) ma è anche meno sicura: un computer può potenzialmente leggere l'immagine non offuscata.

Ma nel complesso penso che sia un buon compromesso; fermerà la stragrande maggioranza dei robot spam.

5
Thomas Bonini

Uso un semplice script Python per convertire l'indirizzo e-mail in un collegamento mailto in cui l'indirizzo e-mail è codificato in entità HTML. Questo è completamente trasparente per l'utente, ma sembra oscurare il contenuto abbastanza da sconfiggere i robot di raccolta più semplici.

#! /usr/bin/env python3.0

def entity_encode(text):
    out = ""
    ba = text.encode()
    for i in range(len(ba)):
        out = out + "&#x{0:02x};".format (ba[i])
    return out

def print_email_link(address) :
        print('<!-- {0} -->'.format(address))
        print('<a href="{0}{1}">{1}</a>'.format(entity_encode("mailto:"), entity_encode(address)))


print_email_link("[email protected]")

Questo dà l'output

<!-- [email protected] -->
<a href="&#x6d;&#x61;&#x69;&#x6c;&#x74;&#x6f;&#x3a;&#x74;&#x65;&#x73;&#x74;&#x31;&#x32;&#x33;&#x40;&#x65;&#x78;&#x61;&#x6d;&#x70;&#x6c;&#x65;&#x2e;&#x63;&#x6f;&#x6d;">&#x74;&#x65;&#x73;&#x74;&#x31;&#x32;&#x33;&#x40;&#x65;&#x78;&#x61;&#x6d;&#x70;&#x6c;&#x65;&#x2e;&#x63;&#x6f;&#x6d;</a>

Quando il risultato viene incollato in una pagina Web, il browser visualizza il testo "[email protected]" come una hyperline a "mailto: [email protected]", quindi è altrettanto conveniente per l'utente finale come includere l'indirizzo in chiaro. Ma sembra sconfiggere molti bot di raccolta.

Ovviamente, elimino il commento con la semplice versione ASCII dell'indirizzo dopo aver incollato il collegamento e-mail oscurato nel punto appropriato della fonte HTML della pagina web.

5
Stephen C. Steel

Chiedere all'utente di risolvere un CAPTCHA prima di mostrare loro l'indirizzo e-mail (o se si dispone di un modulo di contatto, prima di consentire all'utente di inviarlo).

È il più fastidioso per gli utenti ma sicuramente il più efficace.

4
Thomas Bonini

Sono un fan dell'offuscamento, in cui l'indirizzo e-mail è essenzialmente reso con Javascript.

Ad esempio, [email protected] potrebbe essere visualizzato come

<a href="javascript:location='mailto:\u006d\u0079\u0040\u0065\u006d\u0061\u0069\u006c\u002e\u0063\u006f\u006d';void 0">
<script type="text/javascript">document.write('\u006d\u0079\u0040\u0065\u006d\u0061\u0069\u006c\u002e\u0063\u006f\u006d')</script></a>

Per quanto riguarda l'utente, è un testo normale e può essere copiato e incollato. I robot d'altra parte avranno un momento più difficile.

Ecco obfuscator che ho usato.

3
Paperjam

Senso unico:

_  <script language="javascript"> 
  <!--
  var name = "user"
  var Host1 = "gm"
  var Host2 = "ail.com"
  var addr =
  document.write("<a href=mai" + "lto:" + 
    name + "&#64;" + Host1 + Host2 +
    ">" + name + "&#64;" + Host1 + Host2 + "</a>")
  //-->
 </script> 
_

Puoi scrivere "Decodifica la mia e-mail: user at com dot gmail" in <noscript> tag per coloro che hanno disattivato JavaScript. In questo modo si ottiene la funzionalità di collegamento ipertestuale. Hai buone possibilità di tenere lontani gli spam dal tuo indirizzo e le persone con javascript disattivato o solo i browser di testo possono ancora ottenere il tuo indirizzo email.

2
Adam

Tutte le tecniche di offuscamento del mondo non possono essere d'aiuto a lungo termine se molte persone ti contattano. Tutto ciò che serve è che qualcuno ti mandi un messaggio e in seguito venga infettato da alcuni malware che scansiona la sua casella di posta/posta inviata/rubrica/qualunque cosa per indirizzi validi, e il tuo indirizzo là fuori viene passato da un elenco all'altro [Ho anche contatti abbastanza stupidi da mettere lì l'indirizzo e-mail e la password in moduli online per le ragioni più idiote, probabilmente anche tu, quello più recente è stato un sito che si è offerto di calcolare la "carta e le previsioni dell'astrologia e-mail" di qualcuno che ha immediatamente spammato tutti i contatti dello sciocco con un invito allo stesso sito e <deity> sa solo quali altri elenchi ci troviamo ora come risultato].

L'indirizzo sui miei siti Web pubblici non è solo un indirizzo a eliminazione diretta, ma su un sottodominio a eliminazione diretta. Se comincio a ricevere spam su quel sottodominio, ne creo uno nuovo, aggiorno i siti in cui sono elencati i miei dati di contatto e poco dopo rimuovo completamente il sottodominio dai record DNS. Se lo fai, o qualsiasi altra tecnica di indirizzo usa e getta, assicurati di chiarire (su qualsiasi pagina che elenca l'indirizzo e nel piè di pagina di qualsiasi posta che invii utilizzando quell'indirizzo) che l'indirizzo cambierà in futuro e se le persone possono per passare dovrebbero ricontrollare per assicurarsi che abbiano l'indirizzo corretto.

Questo ha il vantaggio di essere semplicemente un indirizzo per cui le persone possono fare clic (se il loro browser + mailer sono collegati in quel modo) o copiare + incollare senza dover usare il cervello per modificare l'indirizzo in seguito (sono sempre sorpreso da quanti altrimenti le persone intelligenti e attente non riescono a fare bene quel genere di cose). Significa anche che il mio server di posta non passa le sue giornate a rimbalzare i messaggi inviati a indirizzi "casuali" (aaron @, adam @, amy01 @, ...) nei sottodomini scaduti. Inoltre, non confonde i lettori di schermo usati dai non vedenti o dalla posizione sbagliata.

Un'altra opzione che non ho ancora provato è quella di utilizzare una richiesta AJAX per leggere l'indirizzo e-mail e altri dettagli. Questo potrebbe essere leggermente più efficace dell'offuscamento basato su document.write, anche se aggiungerà un piccolo carico in più sul web server.

In passato utilizzavo moduli "contattami/noi", ma ho scoperto che vengono spammati tanto quanto, a volte più di, indirizzi e-mail in chiaro - a volte tramite script che cercano di utilizzare il modulo per creare un account da qualche parte piuttosto che usalo come modulo di contatto.

2
David Spillett

Assolutamente no, Jose! - Sì, Jose!

Non esiste assolutamente alcun modo per "interrompere" la raccolta di a href="mailto:" indirizzi e-mail. Si ritiene da tempo che l'uso di JavaScript sia un buon modo per prevenire la maggior parte dei bot di raccolta, ma oggigiorno i bot sono dannatamente bravi a sconfiggere questo metodo. Possono anche sconfiggere le immagini che contengono indirizzi e-mail, allo stesso modo in cui possono sconfiggere captcha utilizzando il software decaptcha.

Il modo migliore!

L'approccio migliore sarebbe quello di utilizzare un servizio di posta affidabile che offra un buon blocco dello spam. Google G Suite e Microsoft Office 365 utilizzano un algoritmo che non ha eguali a nessun software presente sul mercato, principalmente perché ricevono milioni di email al giorno e sono in grado di "apprendere" e gli spammer nella lista nera molto prima che tentassero persino di inviarti email.

In effetti un anno fa Google ha affermato che la sua tecnologia di apprendimento automatico ora blocca il 99,9% dei messaggi di spam e phishing di Gmail , i server locali di Microsoft Exchange e di posta che funzionano dietro a plesk/cpanel non sono in grado di competere con questa protezione.

Sommario

Blocca lo spam utilizzando un servizio di posta affidabile in grado di apprendere automaticamente dall'IA. Puoi anche fare un passo ulteriore impedendo agli spammer di visitare il tuo sito utilizzando Cloudflare che rileverà una grande maggioranza di robot aggressivi prima che raggiungano il tuo sito.

1
Simon Hayter

Se si dispone di un filtro bot (utilizzando 1x1px, sottorete, bot noti, rilevamento jscript, referrer http e agente browser) non è possibile visualizzare semplicemente le informazioni se si tratta di un bot.

Soluzione in PHP:

<?
if (!isbot()) {
  echo 'mailto:'.$email_address_for_real_people;
  }
  else {
  echo 'mailto:[email protected]'.$bots_domain_address;
  }
?>
1
Talvi Watia

La cosa più semplice che ho trovato è utilizzare un modulo di contatto in cui è presente un indirizzo predefinito, ma anche la possibilità per l'utente di selezionare a chi deve andare la comunicazione (marketing, vendite, supporto tecnico, ecc.). Quindi, in base al valore dell'elenco a discesa, i dati del modulo inviato vengono inviati dal server all'indirizzo di posta elettronica appropriato.

Esegui questo elenco di contatti da una tabella del database in modo da poter aggiornare/aggiungere facilmente le voci al menu a discesa. In questo modo non stai mai esponendo alcun tipo di indirizzo al vasto mondo dei robot spam e dai comunque ai tuoi utenti un ottimo modo per inviare feedback.

1
Milner

Usa Zoho Creator per impostare un modulo di contatto. Il feedback che riceverai verrà archiviato in un database a cui puoi accedere online e ti verrà anche inviato via email.

0
mvark

Uso un funzione PHP per generare del javascript per generare lo script in fase di esecuzione. Si noti che non è necessario PHP per generare il JS in fase di esecuzione, è possibile generare il JS una volta localmente e quindi includere il JS statico nella tua pagina.

Puoi anche utilizzare la funzione collegata con questo frammento di seguito per offuscare automaticamente gli indirizzi e-mail in un determinato HTML (dove $ elaboratedContent è l'HTML):

 $emailMatches = array();
 $matchCount = preg_match_all('/(?:[a-zA-Z0-9_\.\-])+\@(?:(?:[a-zA-Z0-9\-])+\.)+(?:[a-zA-Z0-9]{2,4})+/', $processedContent, $emailMatches);

 if($matchCount > 0) {
    $emailMatches = $emailMatches[0];

    foreach($emailMatches as $email) {
    $replacement = createJSMailLink($email);

    $processedContent = str_replace($email, createJSMailLink($email), $processedContent);
 }
}
0
iloveitaly

Una cosa che faccio è usare l'API da http://www.stopforumspam.com per verificare la presenza di spammer. Non esitate a contattarmi per i dettagli e sarò felice di aiutarvi con esso!

Bud Manz

Manz Web Designs, LLC

0
Bud

Ho usato [email protected] per anni. Gli utenti in genere sanno abbastanza per eliminare il "no-spam".

In caso contrario, utilizzo semplicemente un modulo di contatto con un "captcha" e invio la posta direttamente dal sito Web.

0
Gary.Ray

Ecco un altro offuscatore di posta elettronica: Enkoder , di Dan Benjamin. Viene fornito sia come app online che come app standalone per Mac.

0
Alex

Se non ti dispiace usare JavaScript, puoi usare qualcosa come ROT13 per offuscare l'indirizzo e-mail. Ad esempio vedi questo:
http://scott.yang.id.au/2003/06/obfuscate-email-address-with-javascript-rot13/

Personalmente, preferisco usare un modulo di contatto e non preoccuparmi degli spambots, ma ovviamente tutto dipende dalle tue esigenze.

0
Mee

Se stai usando un modulo di contatto, potresti usare la divertente tecnica di usare nomi casuali per i tuoi input.

Ad esempio, creo un modulo di contatto, anziché utilizzare la posta elettronica come input, utilizzerei liame, lo stesso con nome (eman) e commento (tnemmoc). I robot in realtà non sanno cosa fanno questi input, quindi li ignorano e basta.

0
dkuntz2

Ho impostato un modulo/foglio di calcolo di Google Documenti. Posso controllare le voci del modulo una volta al giorno e la mia casella di posta non è allagata.

0
Sri