Evoluzione contatti nella lotta per lo spam: Web : Blog

Evoluzione contatti nella lotta per lo spam | Web : Blog

Feed RSS Blog

Specializzato in Mikrotik RouterOS

Sicurezza significa principalmente coscienza e conoscenza dei propri strumenti

Evoluzione contatti nella lotta per lo spam

html, javascript e php; i codici

by Antonio D'Avanzo

Chi dispone di un sito Internet ha nella stragrande maggioranza dei casi la necessità di interagire con i suoi navigatori per soddisfare le loro richieste. Per esempio suppongo che il proprio indirizzo sia MIA@E-MAIL.
La cosa più semplice è quella di pubblicarlo "in chiaro", nel senso che il codice HTML conterrà in un certo punto un'istruzione di questo tipo:
<a href="mailto:MIA@E-MAIL">MIA@E-MAIL</a>
La precedente istruzione non fà altro che associare al testo "MIA@E-MAIL" (quello compreso tra l'àncora di apertura e quella di chiusura) il link che avvia attraverso "mailto:" il proprio client di posta elettronica installato sul proprio computer se fosse configurato correttamete. Ha il pregio di essere completamente accessibile per qualsiasi tipo di browser, includi quelli usati dai diversamente abili. 
Osservandola si vede che è banalmente realizzabile ma pecca di essere facilmente trovata dai spam bot. Come riescono a trovarla? Cercano proprio il simbolo "@". E se questi dannati scoprissero il proprio indirizzo avremmo guai seri ricevendo vagonate di spazzatura che potrebbero costringerci a cambiarlo o trovare servizi antispam :-(

Lotta feroce contro lo spam

Il primo passo per proteggerlo è quello di ricorrere a JavaScript. In sostanza di spezza l'indirizzo in due parti: la prima contentente ciò che è presente a sinistra della chiocciola e l'altra quello che sta a destra di quel simbolo assegnandone rispettivamente alle variabili n1 ed n2.
<script type="text/javascript">
<!--
//
var n1 = "MIA"
var n2 = "E-MAIL"
var destinatario = n1 + "@" + n2
var indirizzo = "mailto:" + destinatario
document.write(destinatario.link(indirizzo));
// -->
</script>
Quello che fà lo script è di assegnare alla variabile destinatario la cincatenazione delle stringhe che compongono l'indirizzo e-mail. Successivamente visualizza il link associando all'account dell'e-mail.
Il codice precedente è già in grado di eludere la quasi totalità dei bot. Questi girando nel web non avendo JavaScript abilitato non possono visualizzarlo.
In teoria gli spammer potrebbero implementare un'applicazione  "ad hoc" ma poiché richiederebbe diverse casistiche il gioco non ne varrebbe la candela. Infatti si potrebbe creare una funzione personalizzata che visualizzi l'indirizzo. Gli unici che possono inserire manualmente il nostro ben amato indirizzo e-mail potrebbero essere gli utenti in carne ed ossa, caso che purtroppo mi è capitato personalmente, grrr!!!
Ricorrere a JavaScript ha il difetto di non rendere più il codice accessibile.

* * *

L'ultimo metodo che nasconde completamente l'indirizzo è realizzabile implementando una form mailer purché il server supporti un linguaggio di scripting tipo PHP/ASP/JSP solo per citarne alcuni. Queste possono essere di diversi tipi in base alla complessità che si vuole dare. Quello proposto è uno semplice scritto in PHP e potrebbe essere preso d'esempio per aggiungere nuovi campi. Inoltre ricorrerò a due pagine separate, sebbene sia possibile mettere tutto il codice in un'unica pagina con opportuni accorgimenti ed in tal caso la pagina sarà necessariamente di tipo PHP.
La pagina contenente il modulo se non richiedesse funzioni sul lato server potrebbe essere semplicemente una HTML altrimenti è necessario che sia PHP. Per semplicità e chiarezza del codice non considero gli stili e mi focalizzo solo sul codice della form (quindi si trova all'interno del body):

<form action="target.php" method="post" name="form">
 Nome e cognome:<br><input name="mittente" type="text" size="20"><br><br>
 E-mail:<br><input name="email" type="text" size="20"><br><br>
 Oggetto:<br><input name="oggetto" type="text" size="20"><br><br>
 Messaggio:<br><textarea name="testo" cols="50" rows="6"></textarea><br><br>
 <input type="submit" name="spedizione" value="Invia">
</form>

Modulo form anti spam in PHP

Da osservare che il metodo usato per trasmettere il contenuto dei campi è post poiché permette di contenere una maggiore quantità di informazioni rispetto al metodo get.
Invece l'altra pagina dovrà essere necessariamente in PHP poiché dovrà processare i dati. Come si legge dal tag <form> dovrà chiamarsi "target.php"

<?php
// recupero dei campi ricevuti dalla form
$mittente = $_POST['nome'];
$email = $_POST['email'];
$oggetto = $_POST['oggetto'];
$testo = $_POST['testo'];

// preparazione delle intestazioni per l'invio dell'e-mail
$emaildest = "MIA@E-MAIL"; # <-- sostituire con il proprio indirizzo e-mail
$subject = "$oggetto";
$headers = "From: <$email>";
$messaggio = "$mittente ha scritto:n$testo";

// invia il messaggio
if (mail("$emaildest", $subject, $messaggio, $headers))
 echo 'Il messaggio è stato inviato con successo.';
else echo "Si è verificato un errore nella spedizione del messaggio!!!";
echo  ' Torna alla <a href="http://www.cervia.name/">homepage</a>.'
?>


Come indicato nei commenti la prima parte recupera i valori scritti nella pagina del modulo. Successivamente vengono impostate le quattro variabili fondamentali per la funzione mail() che si occupa della spedizione. Infine stampa il respondo dell'invio ed invita il navigatore a tornare alla homepage del sito.
A questa base di partenza di potrebbero aggiungere molte altre condizioni per sbarrare ulteriormente la strada all'invio massiccio di messaggi da parte di qualche host infettato... Una soluzione attualmente molto gettonata è ricorrere ai captcha. Tuttavia è un argomento affrontabile solo dopo aver assimilato bene le nozioni sul form mailer semplici ed altre tecnologie più avanzate.

Questo argomento verrà trattato in un articolo completo, nel sito http://www.cervia.name che vi invito a visualizzare

 

Social Bookmark
  • co.mments
  • del.icio.us
  • Digg
  • Ma.gnolia
  • StumbleUpon
  • Technorati
  • YahooMyWeb
  • Oknotizie
  • Segnalo
  • SEOTribu
  • Wikio
  • Segnaloitalia
  • Google Italia

Commenti

<< Febbraio 2012  
Do Lu Ma Me Gi Ve Sa
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29