Avatar billede compac Seniormester
25. oktober 2008 - 21:43 Der er 10 kommentarer og
1 løsning

Beskyttelse af email

Jeg skal udskrive en liste e-mails fra min database til min hjemmeside.
Hvordan beskytter jeg disse emails bedst mod angreb?

$sql="select email from $tabel;";
          $result=mysql_query($sql) or die(mysql_error());
          while($row=mysql_fetch_array($result))    {
          $email = $row['email];

                  echo $email;
}
Avatar billede erikjacobsen Ekspert
25. oktober 2008 - 22:10 #1
"Hvordan beskytter jeg disse emails bedst mod angreb?" - ved at lade være.

Næstbedst er måske at vise dem som billeder.
Avatar billede compac Seniormester
25. oktober 2008 - 22:49 #2
Problemet hos mig er, at mailadresserne jævnligt udskiftes, og derfor vil jeg "kode mig ud af det".
Jeg har denne her:

<script language="Javascript">var username = 'mailadr'; var domaine  = 'domaneadr.dk'; var mail = username + '@' + domaine.replace(/^([\-\w]+)\s+([\-\w]+)\s+([\-\w]+)$/, "$3.$2.$1"); document.writeln(mail.link('mailto:' + mail));</script>

Jeg ved ikke hvor meget den er værd, men hvordan erstatter jeg de faste værdier for mailadr og domaneadr.dk med php-kode?
Avatar billede erikjacobsen Ekspert
25. oktober 2008 - 23:36 #3
Du kan også lave dynamiske billeder i PHP.
Avatar billede kjeldsted Novice
25. oktober 2008 - 23:46 #4
<?php
$text = 'mail@domæne.dk';

// Set the content-type
header("Content-type: image/png");

// Create the image
$im=imagecreatefrompng("./background_mail.png");
imagealphablending($im, true); // setting alpha blending on
imagesavealpha($im, true);
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
// Replace path by your own font path
$font = './fonts/verdana.ttf';
imagettftext($im, 10, 0, 0, 17, $white, $font, $text);
imagepng($im);
imagedestroy($im);
?>

Ganske simpelt og godt skjult.
Avatar billede stengaard Praktikant
27. oktober 2008 - 17:23 #5
Skal man ikke lave en "background_mail.png" selv for at få det til at virke
Avatar billede kjeldsted Novice
28. oktober 2008 - 10:03 #6
Ah... Hov. Forkert copy-paste, hehe. Nej. linjen skal ændres til

$im=imagecreate(bredde,højde);

Medmindre man ønsker andet end en tom baggrund. Så kan man lave en .png fil og bruge denne med imagecreatefrompng().
Avatar billede compac Seniormester
31. oktober 2008 - 15:27 #7
Løsningen med $im=imagecreatefrompng("./background_mail.png"); fungerer fint, som "standalone". Hilke værdier skal der indsættes som "bredde , højde" i $im=imagecreate(bredde,højde);-løsningen? Jeg har prøvet med forskellige tal, men der kommer syntaxfejl.

Nu kommer det alvorlige: Når jeg henter email-værdierne fra min database kommer der en masse "hokus-pokus":
‰PNG  IHDR~ÔƵ½!PLTEÿ@ÿÿÿ€€€ÿr‡ÿŽŸÿVoÿÆÏÿ:Wÿâçÿª·I¸ÅÝ,IDATxœíÕ¡NA@Ñ'Ú¥]Õ&Ê׉Cv]W’*0-r7!ÜnÒ¨*²I…G¬˜sæÞܼÌD iÓ,£.fŬz˜á÷ÍË!÷§ë¦®ë¢?DõÚ?½/

Min kode ser således ud:

<?php
    header("Content-type: image/png");
          include("conn.php");
          $sql="select email from $tabel";
          $result=mysql_query($sql) or die(mysql_error());
          while($row=mysql_fetch_array($result))    {
          $email = $row['email'];
                  $text = $email;
$im=imagecreatefrompng("background_mail.png");    //path-rettet
imagealphablending($im, true); // setting alpha blending on
imagesavealpha($im, true);
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
// Replace path by your own font path
$font = 'verdana.ttf';          //path-rettet
imagettftext($im, 10, 0, 0, 17, $white, $font, $text);
imagepng($im);
imagedestroy($im);
echo "<br />";
}
>

Hvad kan jeg gøre?
Avatar billede compac Seniormester
31. oktober 2008 - 15:51 #8
Så vidt jeg kan se er en af årsagerne, at koden ikke kan stå inde i et html-forløb.
Er der en løsning på det? Det useriøse svar er: Fjern html-koden.
Det seriøse svar er en forklaring og gerne et forslag til løsning.
Avatar billede pidgeot Nybegynder
31. oktober 2008 - 15:57 #9
Korrekt, du kan ikke have et inline-billede (eller jo, med lidt fiksfakseri kan du, men ikke i IE7 og derunder, og det vil blot kræve mere båndbredde og flere systemressourcer).

Hiv det ud i et script for sig, der sender en header('Content-Type: image/png');, og sæt det ind som et billede på den her side (og send eventuelle parametre med i URL'en).

"bredde,højde" skal være den størrelse du nu vil have billedet skal være på. Evt. kan du bruge http://www.php.net/manual/en/function.imagettfbbox.php til at beregne den nødvendige størrelse.
Avatar billede compac Seniormester
31. oktober 2008 - 21:25 #10
Alletiders, jeg lagde image-koden over i en fil for sig selv og kaldte den fra hovedprgrammet med:  echo "<img src='image.php?ImageName=$email'>";
- så var den hjemme.

Læg nogle svar.
Avatar billede compac Seniormester
16. august 2010 - 23:21 #11
slutter selv
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