Avatar billede prom Nybegynder
07. maj 2004 - 20:36 Der er 23 kommentarer og
1 løsning

"Skjule" email adresser med Email Enkoding eller appleter

Jeg vil undgå at spam-søgeroboter "høster" min email adresse fra min webside, men vil stadig have email adressen synlig. Jeg har derfor tænkt på at bruge enten email-enkoder som vist her: http://automaticlabs.com/products/enkoder, eller i stedet lade en applet vise email-adressen.
Men hvordan kan jeg være sikker på at folkene bag email-enkoderne ikke selv "høster" de adresser der sendes.

Nogen der har erfaringer? Og hvilke appleter er bedst?

- prom
Avatar billede roenving Novice
07. maj 2004 - 21:02 #1
-- men du kan da benytte dig af noget simpel javascript, så der i koden ikke fremgår en e-mail-adresse, men den kun ses, når javascriptet har kørt ...
Avatar billede prom Nybegynder
07. maj 2004 - 21:06 #2
Ja det er netop det der er princippet bag email-enkodning. Men "email-høsterne" kan angiveligt gennemskue denne teknik og udtrække email-adressen alligevel...? eller hvad..?
- prom
Avatar billede roenving Novice
07. maj 2004 - 21:21 #3
Så skal de kunne debugge en javascript-ting, den tror jeg ikke på, kan gøres ved andet end en helt simpel metode ...

-- og den helt simple metode vil være at man direkte bruger f.eks. character codes, bare en minimal scrambling vil kræve, at man laver et ret kompliceret program til at debugge ...
Avatar billede prom Nybegynder
07. maj 2004 - 21:39 #4
Du har sikkert ret... Jeg tror jeg går efter javaScript metoden... Men er der ikke nogen der har erfaringer med appleter der kan skjule email-adresser?

- prom
Avatar billede olebole Juniormester
08. maj 2004 - 00:22 #5
<ole>

Du kunne encode din e-mail-adresse med denne her:

function getCode(email) {
    var s, a, s2 = new Array(), s3 = new Array();
    s = "xbytw.advom-clpq_gjushnrzfiek";
    a = email.split("\100");
    for ( i=0; i<a.length; i++ ) {
        for ( j=0; j<a[i].length; j++ ) {
            if (i==0) s2.push( s.indexOf(a[i].charAt(j)) );
            else s3.push( s.indexOf(a[i].charAt(j)) );
        }
    }
    s2 = s2.join("-");
    s3 = s3.join("-");
    with ( open("", "", "width=400,height=200").document ){open();write(s2+"|:|"+s3);close()}
}
email = "olebole@domain.dk";
getCode(email);

------------------------------------
Så kan du inkludere disse to funktioner på alle sider med en include-fil:

function xk5pqw(a) {
    var a, b, s2 = "", s = "xbytw.advom-clpq_gjushnrzfiek";
    a = a.split("|:|");
    for ( i=0; i<a.length; i++ ) {
        s2 += (i==1)? "\100" : "";
        b = a[i].split("-");
        for ( j=0; j<b.length; j++ ) s2 += s.charAt( b[j] );
    }
    return s2;
}
function q8ogd6xj() {
    var x, a = document.getElementsByTagName("span");
    x = xk5pqw("9-13-27-1-9-13-27|:|7-9-10-6-26-22-5-7-28");
    for ( i=0; i<a.length; i++ ) {
        if ( a[i].className=="zyt29bh" ) a[i].innerHTML = x;
    }
}

Så kan du skrive din e-mail-adresse i et dokument på denne måde:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>TITLE</title>
<script type="text/JavaScript" src="din_inc_fil.js"></script>
<script type="text/JavaScript">
window.onload = function() {
    q8ogd6xj();
}   
</script>
</head>
<body>

OleBole's e-post: <span class="zyt29bh"></span> bla blabla bla bla bla ...

</body>
</html>

Hvis en robot kan opsnuse og læse det, er den for langsom til at kunne bruges til noget  :)

/mvh
</bole>
Avatar billede olebole Juniormester
08. maj 2004 - 00:34 #6
Mjaa ... skriv funktionerne sådan:

function xk5pqw(a) {
    var b, s2 = "", s = "xbytw.advom-clpq_gjushnrzfiek";
    a = a.split("|:|");
    for ( i=0; i<a.length; i++ ) {
        s2 += (i==1)? "\100" : "";
        b = a[i].split("-");
        for ( j=0; j<b.length; j++ ) s2 += s.charAt( b[j] );
    }
    return s2;
}
function q8ogd6xj() {
    var x, a = document.getElementsByTagName("SPAN");
    for ( k=0; k<a.length; k++ ) {
        if ( a[k].className!="zyt29bh" ) continue;
        x = xk5pqw( a[k].innerHTML );
        a[k].innerHTML = x;
    }
}

----------------------
og 'kaldet':
  <span class="zyt29bh">9-13-27-1-9-13-27|:|7-9-10-6-26-22-5-7-28</span>

Så kan du skrive forskellige e-mails på samme side  :)
Avatar billede olebole Juniormester
08. maj 2004 - 00:40 #7
PS: roenving kommer nok om lidt og siger noget om flere tegn i strengen 's'. Du kan bare fylde flere i - men det er meget vigtigt, at strengen, der koder, er den samme som den, der dekoder  ;o)
Avatar billede roenving Novice
08. maj 2004 - 00:41 #8
*lol*

-- og det har garanteret taget dig længere tid at lave xbytw-strengen !-)
Avatar billede roenving Novice
08. maj 2004 - 00:42 #9
-- og bortset fra det, vil det alt andet lige gøre det sværere at dekode, hvis der var gengangere i kode-strengen !-)
Avatar billede olebole Juniormester
08. maj 2004 - 00:51 #10
*ROTFL* nej, jeg sidder faktisk og koder noget PHP/DHTML, så jeg bankede lige denne her i en fil:

<?
$s = "a b c d e f g h i j k l m n o p q r s t u v w x y z . - _";
$a = explode(" ",$s);
shuffle($a);
print implode("",$a);
?>

Så var jeg sikker på ikke at glemme noget - og det er med den sikkerhed in mende langt hurtigere  ;D
Avatar billede olebole Juniormester
08. maj 2004 - 00:52 #11
... og der ligger jo altid en testfil i en eller anden bruser-instans  :)
Avatar billede roenving Novice
08. maj 2004 - 00:59 #12
-- jajada, den er også bare røget i biblioteket ...

-- så kan jeg jo altid en dag tredoble sikkerheden ved at fordoble udvalgte tegn, og lave et skifte mellem indexOf og lastIndexOf i kode-maskinen !-)
Avatar billede olebole Juniormester
08. maj 2004 - 01:04 #13
Oorrrk ... vi kan strikke, hækle og brodere videre. Det er kun ens slimede, beskidte fantasi, der sætter grænsen ... hvilket jo egentlig åbner ganske vide muligheder  ;D
Avatar billede roenving Novice
08. maj 2004 - 01:05 #14
Så er det zq min tur:

*rotmlmao*
Avatar billede roenving Novice
08. maj 2004 - 01:06 #15
- f -
Avatar billede olebole Juniormester
08. maj 2004 - 01:09 #16
eehhh ... '- f -' ...?!??  :)
Avatar billede olebole Juniormester
08. maj 2004 - 01:11 #17
nååå ... glem min sidste undren  ;o)
Avatar billede roenving Novice
08. maj 2004 - 01:19 #18
Ja, tavetosser florerer jo engang imellem !-)
Avatar billede olebole Juniormester
08. maj 2004 - 01:33 #19
Man kunne og så skrive e-mailen på formen:
  <span class="zyt29bh">s-og-o|:|kwpcsok_s</span>

Så kunne man igen splitte over '|:|' og bygge to arrays med tal, fundet med indexOf i en anden 'kdnytv...'-streng. De arrays kunne man så bruge i stedet for 'b' i den første funktion - gerne i en tredie funktion med endnu et bizart navn  :)
... og man kunne blive ved  :)
Avatar billede prom Nybegynder
08. maj 2004 - 11:43 #20
Fin løsning olebole. Med din metode slipper jeg for og bruge løsninger som på: http://automaticlabs.com/products/enkoder hvor email adressen sendes til netstedet for udregning. Sådanne steder kan jo så let som ingenting putte min adresse ind i  deres database...

Jeg har finpudset din løsning lidt så den bliver lettere at bruge:
Først en side der inkludere "motoren":
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<title>Email Enkoder Engine</title>
<script language="JavaScript">
function enkodeEmail()
{
  var s, a, s2 = new Array(), s3 = new Array();
  s = "xbytw.advom-clpq_gjushnrzfiek";
  a = document.form1.emailAdress.value.split("\100");
  for (i=0; i<a.length; i++)
  {
    for (j=0; j<a[i].length; j++)
    {
      if (i==0)
      {
        s2.push(s.indexOf(a[i].charAt(j)));
      }
      else
      {
        s3.push(s.indexOf(a[i].charAt(j)));
      }
    }
  }
  s2 = s2.join("-");
  s3 = s3.join("-");
  document.getElementById("enkodedEmail").innerHTML = s2 + "|:|" + s3;
}
</script>
</head>

<body>
<form name="form1" action="java script:enkodeEmail();">
  <input type="text" name="emailAdress" value="" size="40">
  <input type="submit" name="submit" value="Enkode email">
</form><br><br>
<div id="enkodedEmail"></div>
</body>
</html>


Og så et eksempel på hvordan resultaterne kan bruges:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>TITLE</title>
<script type="text/JavaScript" language="JavaScript">
function xk5pqw(a)
{
  var b, s2 = "", s = "xbytw.advom-clpq_gjushnrzfiek";
  a = a.split("|:|");
  for (i=0; i<a.length; i++)
  {
    s2 += (i==1)? "\100" : "";
    b = a[i].split("-");
    for (j=0; j<b.length; j++)
    {
      s2 += s.charAt(b[j]);
    }
  }
  return s2;
}
function q8ogd6xj()
{
  var x, a = document.getElementsByTagName("span");
  for (k=0; k<a.length; k++)
  {
    if (a[k].className!="zyt29bh")
    {
      continue;
    }
    x = xk5pqw(a[k].innerHTML);
    a[k].innerHTML = "<a href='mailto:" + x + "'>" + x + "</a>";
  }
}
window.onload = function()
{
  q8ogd6xj();
}

</script>
</head>
<body>

Mail: <span class="zyt29bh">25-19-20-28-27-23|:|25-19-20-28-27-23-20-27-22-5-7-28</span> bla bla bla bla bla bla ...
Mail: <span class="zyt29bh">1-13-6-1-13-6|:|1-13-6-1-13-6-5-7-28</span> bla bla bla bla bla bla ...

</body>
</html>

Post et par svar hvis i vil have point :)

- prom
Avatar billede prom Nybegynder
08. maj 2004 - 12:54 #21
Der opstår problemer når siden skal reloades, og når der bruges iframe-buffering og sådan noget...

Jeg har derfor gjort det hele noget mere simpelt:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>TITLE</title>
<script type="text/JavaScript" language="JavaScript">
function xk5pqw(a)
{
  var b, s2 = "", s = "xbytw.advom-clpq_gjushnrzfiek";
  a = a.split("|:|");
  for (i=0; i<a.length; i++)
  {
    s2 += (i==1)? "\100" : "";
    b = a[i].split("-");
    for (j=0; j<b.length; j++)
    {
      s2 += s.charAt(b[j]);
    }
  }
  document.write("<a href='mailto:" + s2 + "'>" + s2 + "</a>");
}
</script>
</head>
<body>
Mail: <script type="text/javascript" language="javascript">xk5pqw("25-19-20-28-27-23|:|25-19-20-28-27-23-20-27-22-5-7-28");</script> bla bla bla bla bla bla ...
Mail: <script type="text/javascript" language="javascript">xk5pqw("1-13-6-1-13-6|:|1-13-6-1-13-6-5-7-28");</script>> bla bla bla bla bla bla ...
</body>
</html>

Så slipper jeg for:
window.onload = function()
{
  q8ogd6xj();
}

- prom
Avatar billede olebole Juniormester
08. maj 2004 - 18:49 #22
Næææhhh ... der burde ikke kunne opstå problemer ved hverken reload eller iframe-buffering. Det tyder på uhensigtsmæssigheder i resten af koden ... måske endda fejl  :)

Jeg tænkte først på at lave det, som du har gjort i seneste eksempel - men det vil kunne give en robot et tydeligere hint. Derfor skrev jeg det på den anden måde - og dem bør som sagt ikke volde vanskeligheder, hvis man ellers koder resten rigtigt  :)
/mvh
Avatar billede prom Nybegynder
08. maj 2004 - 19:00 #23
De problemer jeg har er kun i IE Mac. Jeg har oprettet et spørgsmål om netop IE Mac her: http://www.eksperten.dk/spm/497329
Kan I ikke tage et kig?

- prom
Avatar billede olebole Juniormester
09. maj 2004 - 01:13 #24
... så vil jeg tillade mig at smide et svar her også  :)
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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