Spamvermeidung durch Grafik in der E-Mail-Addi

Gesperrt
Superholgi
Beiträge: 57
Registriert: Mo 23. Jul 2007, 12:38
Kontaktdaten:

Spamvermeidung durch Grafik in der E-Mail-Addi

Beitrag von Superholgi »

Hallo auch,

hat jemand eine Ahnung und kann mir vielleicht dabei helfen, wie ich die E-Mail-Addys auf der Homepage sicherer gestalten kann. Folgende Anweisung wurde mir zugetragen, ich weiss aber nicht, ob diese sich so umsetzen lässt in Contenido:

Damit die Versender von Spam gar nicht erst an unsere E-Mail-Adressen gelangen können, sind diese geschützt, d.h. sie stehen nur als Grafik, aber nicht als Text im Internet. Für die Adress-Sammelprogramme (sog. Harvester), die die Spam-Versender einsetzen, wird es damit unmöglich, die E-Mail-Adressen auf unseren Seiten zu finden.

Zu diesem Zweck sieht der HTML-Quelltext für eine E-Mail-Adresse auf unseren Seiten so aus:
<span class="emaillinks" onclick="abdiepost('abtei@k')">abtei<img src="../bilder/bildpost.gif" alt=" "at" koenigsmuenster.de" class="emailbild" /></span>

Dieser Quelltext erzeugt folgendes Bild:
abtei "at" koenigsmuenster.de

Nur das Wort "abtei" erscheint dabei im Klartext, der Rest der E-Mail-Adresse befindet sich in der Grafik bildpost.gif.
Damit bei einem Klick auf die Adresse das E-Mail-Programm gestartet werden kann, wird das kleine Java-Script abdiepost mit dem onclick-Ereignis verbunden. Dieses Script lautet wie folgt:
function abdiepost(empfaenger) {window.location = "mailto:" + empfaenger + "oenigsmuenster.de"; }

Die beiden Klassen emaillinks und emailbild haben den Zweck, dafür zu sorgen, dass Schrift und Grafik auf einer Linie liegen, und dass der Mauszeiger zu einer Hand wird, wenn die Maus sich über der Adresse befindet. Sie sind so definiert:
.emailbild {
vertical-align:text-top;
}
.emaillinks {
cursor:pointer; }


Wäre schön, wenn mir jemand was dazu sagen könnte. Übrigens, die Informationen habe ich von der Seite koenigsmuenster.de, eine hübsche Seite, weiss aber nicht mit welchem Systen gemacht...

Gruß!
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

am einfachsten vermeidest du spam, in dem du gar keine email-adressen anzeigst, sondern ein kontaktformular verwendest.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
Superholgi
Beiträge: 57
Registriert: Mo 23. Jul 2007, 12:38
Kontaktdaten:

Beitrag von Superholgi »

kummer hat geschrieben:am einfachsten vermeidest du spam, in dem du gar keine email-adressen anzeigst, sondern ein kontaktformular verwendest.
Hilft aber nichts, wenn ich E-Mail-Adressen einstellen muss. Mein Chef will das so, wie Chefs eben so mal sind...
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Ich verwende ein Modul, welches im Edit-Modus das normale Eingabefeld enthält und sonst eine spezielle Grafik erzeugt:

Code: Alles auswählen

<?php 
if ($edit)
{
   echo "CMS_HTML[4]";
} else {
   $sEMail = "CMS_HTML[4]";
   if ($sEMail <> "" && $sEMail <> "&nbsp;")
   {
      if (is_int(strpos($sEMail, '@')))
      {
          echo '<img src="includes/make_img_light.php?idart='.$idart.'&lang='.$lang.'&typeid=4" border="0">'."\n";
      } else {
          echo $sEMail . "\n";
      }
   }
   else
      echo "&nbsp;", chr(10);
}
?>
Dazu gehört diese make_img_light.php im incluces-Verzeichnis:

Code: Alles auswählen

<?php
include ('../../../contenido/includes/startup.php');
include ('../../../contenido/includes/cfg_sql.inc.php');

$_GET["idart"]   = (int)$_GET["idart"];
$_GET["lang"]    = (int)$_GET["lang"];
$_GET["typeid"] = (int)$_GET["typeid"];

// $circles = 5;
// $width   = 100;
// $height  = 40;
$font    = 3;
$db      = new DB_Contenido;

$sql = "SELECT Content.Value AS Value FROM con_content AS Content, ".$cfg["tab"]["art_lang"]." AS Article
        WHERE Article.idart=".$_GET["idart"]." AND Article.idlang=".$_GET["lang"]." AND Article.idartlang=Content.idartlang
        AND Content.idtype=2 AND Content.typeid=".$_GET["typeid"] ;

$db->query($sql);
if ($db->num_rows() > 0)
{
   $db->next_record();
   $email = strip_tags(urldecode($db->f("Value")));

   if ($email <> "" && $email <> "&nbsp;")
   {
      // $fontwidth = ImageFontWidth($font) * strlen($email);
      // $fontheight = ImageFontHeight($font);

      $fontTTF = '<serverpath to truetype ttf font file, e.g. /htdocs/cms/includes/verdana.ttf>';
      $tsize = ImageTTFBBox (10, 0, $fontTTF, $email);
      $fontwidth = abs($tsize[2] - $tsize[0]);
      //$fontheight = abs($tsize[5] - $tsize[3]);
      $fontheight = 12;

      // $im = @imagecreate ($width,$height);
      $im = @ImageCreate ($fontwidth + 10, $fontheight + 2);
      // $im = ImageCreateTrueColor ($fontwidth + 2,$fontheight + 2); // erst ab GD V2.x
      $background_color = imagecolorallocate ($im, 255, 255, 255);
      // $text_color = imagecolorallocate ($im, rand(0,100), rand(0,100), rand(0,100)); // Random Text
      $text_color = imagecolorallocate ($im, 0, 0, 0);
      // ImageAlphaBlending($im, false);
      // ImageFilledRectangle($im,0,0,$fontwidth + 2,$fontheight + 2,$background_color); // Hintergrund weiss, nur für TrueColor-Bilder

      // for ($i=1;$i<=$circles;$i++) {
      //   $randomcolor = imagecolorallocate ($im , rand(100,255),
      //   rand(100,255),rand(100,255));
      //   imagefilledellipse($im,rand(0,$width-10),rand(0,$height-3),
      //   rand(20,70),rand(20,70),$randomcolor);
      // }
 
      // imagerectangle($im,0,0,$width-1,$height-1,$text_color);
      // imagestring ($im, $font, rand(3, $width-$fontwidth-3),rand(2,$height-$fontheight-3), $email, $text_color);
      // imagestring ($im, $font, 1, 1,  $email, $text_color);
      
      ImageTTFText ($im, 10, 0, 1, $fontheight - 1, $text_color, $fontTTF, $email);
      header ("Content-type: image/jpeg");
      imagejpeg ($im,"",80);
      // header ("Content-type: image/png");
      // imagePNG ($im);
      imageDestroy;
   }
}
?>
Ist ein wenig geklebt und in dieser Form noch nicht getestet. Die auskommentierten Teile kann man aktivieren, wenn man gd2/trueColor-Grafiken erzeugen möchte (dann wird die Grafik hübscher). Bitte das Anpassen des Pfads zur ttf-Datei nicht vergessen - und natürlich eine ttf-Datei hochladen (z.B. verdana.ttf).

Wenns nicht klappt: Erst selber fummeln, habe gerade nicht so die Zeit... :wink:

Viel Erfolg.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Gesperrt