Dölj emailadresser för spam-robotar
2008-07-28 - atlas, email, robotar, spam
0
walleposter1big
Om du är webutvecklare så är du kanske medveten om problemet med att skriva ut e-post-adresser i källkoden så dom kan bli funna av robotar som likt Google söker internet efter giltiga e-postadresser att skicka spam till. Atlas använder sig av två system för hur detta hanteras, beroende på hur "säker" siten vill vara. Jag tänkte gå igenom dom två metoderna här, om det är någon som är intresserad.

Metod 1: JavaScript

Den snyggaste lösningen är att använda sig av Javascript för att visa en kodad e-postadress. Fördelen med detta är att slutresultatet blir precis som om man hade skrivit adressen rakt upp och ned, och den blir klickbar och fungerar precis som vanligt.
Steg ett är att koda e-postadressen, och det gör vi genom att lägga till skräptecken och använda oss av rot13, så att strängen ser helt kacka ut i koden. Det betyder att adressen "" ser ut så här i koden:

Text

Maila mig på <script type=" text / javascript "> em("| !w(!b<<a>)n<!f|>@!!r)>x!(y!<h >a>|q()u><.<)p <b |z<)>") </script>

Resultat

Maila mig på

PHP

function encode_email($mail){   $chars = array(">", "|", "<", " ", ")", "(", "!");   foreach (preg_split("//", $mail) as $c) $s.= $chars[rand(0, count($chars)-1)] . $c . $chars[rand(0, count($chars)-1)];   $s = str_rot13($s);   return "em("$s")"; }

JavaScript

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);    }); }; function em(s){    s = s.replace(/[><s!|)(]/g, "");    s = s.rot13();    document.write("<a href="mailto&#58;" + s + "">" + s + "</a>"); }
Så det som händer ovan är att PHP-funktionen används för att göra om email-adressen till gibberish och sen anropas en javascript-funktion för att skriva ut den riktiga adressen samt en länk så man kan klicka på den. Så länge användaren har javascript påslaget så fungerar detta perfekt.
Men om han inte har det då? Ja, då kan man lägga till en NOSCRIPT-tagg och där lägga in email-adressen som en bild, men att skapa en sådan bild är inget jag går in på här.

Metod 2: PHP

En nackdel med javascript-metoden är att robotar skulle kunna använda sig av en riktig javascript-tolk innan dom går igenom koden, vilket skulle exponera adressen. Ett sätt att dölja adressen helt från koden är att använda ett till PHP-script för att skapa länken till mailet. Resultatet blir så här:

Text

Maila mig på <a href="/sendmail.php?sendmail=S6DF54nz9hLKANMJgfqJ5xnP5wo20%3D">e-post</a>
Och sen har du ett php-script som heter sendmail.php som ser ut så här:

PHP

if ($_GET["sendmail"]){   header("Location: mailto:" . code($_GET["sendmail"])); }
På det viset så finns det inget som liknar en e-postlänk i koden, och när man klickar på länken så fixar ett php-script själva avkodningen och sedan skapar en mail-länk. Jag vill inte här gå in på vad min code()-funktion gör, men det är en reversibel kodning av en textsträng som bara Atlas kan koda och avkoda. Det är samma funktion jag använder för att skapa länken ovan. Det finns exempel på sådana på nätet om ni vill skapa egna.
Fördelen med den här metoden är att det ser ut som en "normal" länk som robotarna struntar i eftersom dom förmodligen utgår från att det går till ett kontaktformulär.
Lite imponerad hur mycket Apple Watch kan hålla reda på bär man simmar faktiskt
Får lite välbehövlig hjälp att fixa med elen i verkstaden
Improvisationsteater på Västmanlandsteatern. Lika delar pinsamt och skoj :)
Har ryggskott som börjar bli bättre. Nyser nu på morgonen och det hugger till i ryggen och gör ont som fan. Kollapsar på golvet, och när jag reser mig upp så har jag råkat få igång Siri som tror sig ha hört detta. Ok, det gör ont som fan, men jag är ok, Siri :)
Har en trappa hemma som måste renoveras, menrenoveringskit är dyra som tusan, tanken är att jag ska bygga eget renoveringskit, får se hur det går…
Bakbunden
Även en ordentlig geringsfräs för att kunna bygga hållbara trappnosar
Har införskaffat mig en planopress inför kommande bordsprojekt samt ett test för en trapprenovering.
Byggde en pokalhylla till dotterns alla danspokaler
Pricken över i:et :)
Bakbord
Nytt projekt på gång, bakbord till svärfar :)
“Gå och lägg dig” - ”Nej jag kollar på TV med Leia” :)
Extrabord till jul
Extrabord till julafton klart! Byggvideo kommer inom kort på min youtube :)
Weehoo, jag har en egen stämpel nu. Det ni!
Bordskiva oljad och vaxad, ben borstade och betsade. Kanske blir ett bord till slut?
Bordsskiva betsad. Ska slipas/borstas och sen oljas.
Renoverat vardagsrumsbord
Favoritbild från dansuppvisningen igår
Nattduksbord
PanPastel-porträtt
Crock Pot
PanPastel
Tron för Sigge
Road Trip Italien!
Verkstad Remake
Jonas och Jenna
Brud som chillar
Showing off
Undressing
Touch thyself
Hot Love
Profilporträtt
Resa utan kamera?
Paus
Supernöjd med folieringen!
Bilen ska folieras!
Ny såg
PHP och BankID
Jack Skellington
Verkstadsplaner
Magnettavla
Verandatak och grillhörna!
Vardagsrumsbord
Knivblock
Kökshylla
Ny ikon för karta
PC-bygge
Kerlee 35mm f/1.2
Objektivhylla
Natalie Dormer
Hållare till kattmatsskålar
Hälsningar från Norge
With a little help from my friends...
The Most Incredible Fantasy Maps You've Ever Seen
Cityfestivalen
Mitakon Speedmaster 50mm/f0,95
10 minuter vatten
Sony A7R II
Petzval 58 Bokeh Control Art Lens
Scrawlrbox
Nya skärmar till jobbet
Nikon Df - ny leksak
Boba Fett
First Order Storm Trooper
Mikisen
#inlineditbutton