Avatar billede andrew Nybegynder
19. oktober 2008 - 15:00 Der er 16 kommentarer

Undgå spam på mailadresser i gæstebog

Hej.

Jeg er ved at prøve at bygge en kode til at undgå misbrug af gæsters mailadresser i en gæstebog.

Er der nogen der har idéer til en mulig løsning for dette eller skal man over i JS?

Havde en ide om at lave noget kode der kryptere mailadresser ved indlæsning af siden via php, og dekryptere adresserne når der klikkes på dem via JS. Kan dette evt. lade sig gøre?
Avatar billede leif Seniormester
19. oktober 2008 - 15:01 #1
Lav dem til et billede og lad være med at lave dem klikbare.
Avatar billede w13 Novice
19. oktober 2008 - 15:05 #2
Et billede vil klart være sikrest. Du kan også sagtens lave noget JS-halløj, men du risikerer, det ikke er sikkert nok.
Avatar billede andrew Nybegynder
19. oktober 2008 - 15:18 #3
Enig, et billede var at foretrække. Men ønsker at gøre gæstebogen brugervenlig, så må man tage en "risiko". Gæsterne bliver også gjort opmærksom på at deres mail bliver offentliggjorte hvis de skriver den.

Men hvordan kunne løsningen se ud ved at kryptere i php og dekryptere i JS når der klikkes?
Avatar billede w13 Novice
19. oktober 2008 - 16:02 #4
Hvis du bare sætter adresserne ind med JavaScript, skulle du ikke behøve at kryptere noget.
Avatar billede jantzen88 Nybegynder
19. oktober 2008 - 20:38 #5
Hvis du vælger at bruge JS så kan du lave det på den her måde

<a href='java script: void(location.href="mailto:MAIL"+"@"+"HOST"+".dk")'>E-mail</a>

det kan måske hjælpe lidt
Avatar billede w13 Novice
19. oktober 2008 - 20:43 #6
Hvis også teksten i linket skal vise e-mail-adressen, kan du gøre:

<script type="text/javascript">
function makeEmail(sEmail,sID){
  var o = document.getElementById(sID);
  var oLink = document.createElement("a");
  oLink.setAttribute("href","mailto:"+sEmail);
  oLink.appendChild(document.createTextNode(sEmail));
  o.appendChild(oLink);
}
</script>

<div id="link1"></div>

<span id="link2"></span>

<script type="text/javascript">
makeEmail("min@mail.com","link1");
makeEmail("min@mail2.dk","link2");
</script>
Avatar billede jantzen88 Nybegynder
19. oktober 2008 - 21:27 #7
problemet er at du skriver (min@mail.com). dvs det kan nemt bruges af spammer til at finde frem til den da den står som en direkte email addresse du kunne evt som jeg havde gjort splitte den op: makeEmail("MAIL"+"@"+"HOST"+".dk","link1") og dermed gøre det mere besværligt for spammer at finde den.
Avatar billede w13 Novice
19. oktober 2008 - 21:44 #8
Jep. =)
Avatar billede AnyFellow Mester
21. oktober 2008 - 11:09 #9
Jeg ved ikke hvor effektiv det er, men jeg laver følgende link:

Mailadressen i eksemplet er min@mail.com

<a class="link" href="&#109;&#97;&#105;&#108;&#116;&#111;:min&#64;mail.com">min&#64;mail.com</a>
Avatar billede w13 Novice
21. oktober 2008 - 12:08 #10
Jeg ved heller ikke, hvor effektivt det er.. :) Men det kan da være, det virker.

Hvis jeg skulle lave en spamrobot, ville jeg dog nok lave en, der forstod HTML-entities.
Avatar billede jantzen88 Nybegynder
21. oktober 2008 - 15:04 #11
Det ser ellers meget nice ud ;)
Avatar billede andrew Nybegynder
21. oktober 2008 - 16:14 #12
w13=> Det ser interessant ud. Du er på rette spor på hvad jeg søger. Min plan var nemlig at lave en php kode som selvf. bliver afviklet på serveren, så den laver linket krypteret og via JS dekrypere mailen og smider den ind i brugeren mail program.

Jeg har pt. dette JS-script som dekryptere mailadressen:
function decryptCharcode(n,start,end,offset){
    n=n+offset;
    if(offset>0&&n>end){
        n=start+(n-end-1);
    }else if(offset<0&&n<start){
        n=end-(start-n-1);
    }
return String.fromCharCode(n);
}

function decryptString(enc,offset){
    var dec="";
    var len=enc.length;
    for(var i=0;i<len;i++){
        var n=enc.charCodeAt(i);
        if(n>=0x2B&&n<=0x3A){
            dec+=decryptCharcode(n,0x2B,0x3A,offset);
        }else if(n>=0x40&&n<=0x5A){
            dec+=decryptCharcode(n,0x40,0x5A,offset);
        }else if(n>=0x61&&n<=0x7A){
            dec+=decryptCharcode(n,0x61,0x7A,offset);
        }else{
            dec+=enc.charAt(i);
        }
    }
return dec;
}

function linkTo_UnCryptMailto(s){
    location.href=decryptString(s,-2);
}


Men mangler så en php kode der kryptere mailadressen?

Kan I følge mig?
Avatar billede olebole Juniormester
21. oktober 2008 - 20:06 #13
<ole>

Lav en mailsender i PHP. Det løser alle dine problemer  =)

/mvh
</bole>
Avatar billede andrew Nybegynder
01. februar 2009 - 20:31 #14
Jeg har valgt at lægge et billede hvori mailadressen står i. Det blev i hvertfald den letteste løsning :) Smid et svar..
Avatar billede w13 Novice
01. februar 2009 - 20:51 #15
Hvem skal have points?
Avatar billede AnyFellow Mester
30. juni 2010 - 11:57 #16
Jeg springer over.

Husk at acceptere dit eget svar, således spørgsmålet lukkes korrekt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester