…ή αλλιώς πώς να προστατεύσετε τα email links σας.
Τα emails επικοινωνίας είναι χρήσιμα για κάθε site. Η ύπαρξή τους στις ιστοσελίδες τα κάνει ευάλωτα σε ειδικά robots γνωστά ως email spambots.
Τί είναι όμως τα spambots; Τα spambots είναι ειδικά προγράμματα τα οποία διαβάζουν τις σελίδες πολλών sites, εξάγουν από αυτές τα emails που βρίσκουν και τα καταχωρίζουν σε βάσεις δεδομένων με σκοπό την πώληση τους σε spammers. Το αποτέλεσμα είναι να καταλήγουν περισσότερα spam στα mailbox μας.
Υπάρχει τρόπος για να προφυλαχθούμε από τα spambots; Ναι, υπάρχουν πολλοί τρόποι προφύλαξης κάποιοι από τους οποίους είναι:
Χρήση φορμών επικοινωνίας αντί συνδέσμων με τα emails
Μειονεκτήματα:
- Χρειάζεται προσεκτικός σχεδιασμός της φόρμας προκειμένου να είναι εύχρηστη
- Συνήθως ο χώρος για το κείμενο είναι μικρός
- Χρειάζεται μια μικρή εξοικίωση του επισκέπτη
- Ο επισκέπτης δε λαμβάνει αντίγραφο του email σε πολλές περιπτώσεις
Δε θα αναφερθώ στα πλεονεκτήματα των φορμών καθώς το post αυτό αφορά στο email obfuscation και όχι στις φόρμες
Χρήση HTML entities
Στην περίπτωση αυτή γίνεται αντικατάσταση του κάθε χαρακτήρα του email με το αντίστοιχο entitie. πχ το email test@test.com θα αντικατασταθεί με το test@test.com
Μια php συνάρτηση που κάνει αυτή την αντικατάσταση είναι η παρακάτω:
function ObfuscateEmail($email)
{
$enc = “”;
for ($i = 0, $len = strlen($email); $i < $len; ++$i)
$enc .= “&#” . ord($email[$i]) . “;”;
return $enc;
}
Χρήση rot13
Ο rot13 είναι ένας απλός αλγόριθμος αντικατάστασης κατά την εφαρμογή του οποίου κάθε γράμμα του αλφαβήτου αντικαθίσταται από το γράμμα που βρίσκεται 13 θέσεις μετά. πχ Το A αντικαθίσταται με το N, το B με το O και ούτω καθεξής.

Για την κρυπτογράφηση με rot13 η php διαθέτει την ενσωματωμένη συνάρτηση str_rot13. Για την αποκρυπτογράφηση χρησιμοποιείται javascript, όπως φαίνεται παρακάτω (πηγή: http://jsfromhell.com/string/rot13):
String.prototype.rot13 = function(){
return this.replace(/[a-zA-Z]/g, function(c){
return String.fromCharCode((c <= “Z” ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c – 26);
});
};
Αντικατάσταση @ και .
Πολύ παλιά και όχι τόσο αποτελεσματική μέθοδος, η οποία χρησιμοποιείται ακόμα και σήμερα. Στην περίπτωση αυτή αντικαθίσταται το @ με «at» και το . με «dot». Μέσω google μπορούμε να βρούμε πολλά emails αυτής της μορφής και με ένα regular expression να πάρουμε το αρχικό email.
Προσθήκη NOSPAM, REMOVEME κλπ
Η μέθοδος αυτή εκτός από το ότι ανιχνεύεται εύκολα από τα spambots απαιτεί να γνωρίζει ο χρήστης ότι πρέπει να σβήσει το NOSPAM, REMOVEME κλπ, όταν θα ανοίξει ο mail client του.
Αντικατάσταση email με εικόνα
Στην περίπτωση αυτή γίνεται αντικατάσταση του κειμένου με εικόνα στην οποία απεικονίζεται το email. Δείτε ένα παράδειγμα. Ένα πρόβλημα που προκύπτει από αυτή τη μέθοδο είναι ότι η εικόνα δε μπορεί να είναι clickable.
Αντιστροφή όλων των χαρακτήρων
Το email test@test.com γίνεται moc.tset@tset με τη χρήση της strrev και στη συνέχεια μέσω javascript επανέρχεται στη αρχική του μορφή. Παράδειγμα συνάρτησης αντιστροφής σε javascript:
String.prototype.reverse = function() {
return this.split(“”).reverse().join(“”);
}
Υπάρχουν και άλλοι τρόποι για email obfuscation εκτός από τους παραπάνω. Προσωπικά προτιμώ τους 3 πρώτους (φόρμες, entities και rot13).
Σε επόμενο post θα δούμε πώς μπορείτε να προστετευτείτε από τα spam mails.