Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 12. August 2011 21:51

smalladmin
kennt CMS/ms
Registriert: 31. Juli 2011
Beiträge: 140

[GELÖST] Email-Adressen schützen?

Hallo,
in meiner cmsms-Homepage gibt es zahlreiche Kontaktformulare und es sollen auch etliche email-Adressen genannt werden, die mit mailto angesteuert werden.
Nun ist ja ein bekannter Trick, die email mit dieser Technik zu schützen poststelle@a&#

Leider macht das der Seiteneditor zunichte, indem er alles wieder zu Klartext zurückbaut.

Meine Fragen nun:
1) Ist es bei der cmsms-Homepage wirklich wichtig, die email zu verschlüsseln? Da ja mit mysql-Technik gearbeitet wird, könnte das die Suchrobots ausbremsen. 100% Schutz brauche ich nicht.

2) Ich habe jetzt auch Javascript-Generatoren zum Schutz der email gefunden. Wäre das vielleicht was?
Ich denke mir, man könnte den Seiteneditor auf html-Modus umschalten und dann den Code einfügen.

Offline

#2 12. August 2011 21:56

piratos
arbeitet mit CMS/ms
Registriert: 12. August 2011
Beiträge: 545

Re: [GELÖST] Email-Adressen schützen?

Offline

#3 12. August 2011 21:57

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [GELÖST] Email-Adressen schützen?

Dafür gibts ein Smarty-Plugin, welches das können sollte, was du möchtest wink

http://www.smarty.net/docsv2/de/languag … mailto.tpl

Offline

#4 13. August 2011 22:08

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.934
Webseite

Re: [GELÖST] Email-Adressen schützen?

Ich nutze folgendes um die E-Mailadressen zu maskieren:

Plugin mit dem Namen prefilter.mailsecure.php:

<?php
function smarty_cms_prefilter_mailsecure($tpl_source, &$smarty)
{
   return encrypt_content_email($tpl_source);
}

function myMailEncrypt($string,$back=0,$method=1) {
    $out = '';

    if ($method === 'ascii') {
        for ($a=0; $a<strlen($string); $a++) {
            $out .= '&#'.ord(substr($string, $a, 1)).';';
        }
    } else {
        for ($a=0; $a<strlen($string); $a++) {
            $charValue = ord(substr($string,$a,1));
            $charValue+= intval($method)*($back?-1:1);
            $out.= chr($charValue);
        }
    }
    return $out;
}

function encrypt_content_email($content) {

    // Attribute, ggf. aendern
    $atzeichen = "(at)"; // Ersatzzeichen fuer das @

    // hier via regEx alle email-adressen heraussuchen
    preg_match_all("/(mailto:)?([a-z0-9_-]+(\.[a-z0-9_-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4}|museum))/im",$content,$matches);

    // hier jetzt alle gefundenen durchgehen und ersetzen
    if ( isset ($matches[0][0]) and $matches[0][0] != '') {
        for ($m = 0; $m < count ($matches[0]); $m++) {
            $mystring = $matches[0][$m];
            $findme  = 'mailto:';
            $pos = strpos($mystring, $findme);
            $encrypted_email_address = "";
            if ($pos === false) {
                $encrypted_email_address .= str_replace("@",$atzeichen,$mystring);
            } else {
                $encrypted_email_address .= "javascript:linkTo_UnCryptMailto('".myMailEncrypt($mystring)."')";
            }
            $content = str_replace($matches[0][$m],$encrypted_email_address,$content);
        }
    }
    return $content;
}

?>

Danach baust du folgendes JavaScript ein:

<script type="text/javascript">
function UnCryptMailto(s)
{
  var n = 0;
  var r = "";
  for( var i = 0; i < s.length; i++) {
    n = s.charCodeAt( i );
    if( n >= 8364 ) {
      n = 128;
    }
    r += String.fromCharCode( n - 1 );
  }
  return r;
}

function linkTo_UnCryptMailto( s )
{
  location.href=UnCryptMailto( s );
}
</script>

Der Vorteil dieser Methode ist, dass du die E-Mailadressen ganz normal in den Inhalt oder ins Template einbauen kannst. Der Prefilter wandelt alle Mailadressen in ein JavaScipt um.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#5 13. August 2011 22:10

smalladmin
kennt CMS/ms
Registriert: 31. Juli 2011
Beiträge: 140

Re: [GELÖST] Email-Adressen schützen?

Vielen Dank für Eure schnellen Antworten.
Bevor ich wieder groß zu schrauben beginne, noch Verständnisfragen:

1) Der Tipp von piratos funktioniert vermutlich nur mit der im cmsms hinterlegten admin-email-Adresse oder wie kommt die Routine zu der Klartext-email?

2) Meine Website braucht (bitte festhalten) etwa 17 verschiedene Kontaktformulare und es sollen ca. 20 mailto-Adressen hinterlegt werden (leider...). Die Komplexität darf durch den Schutz nicht zu groß werden.
Sind die per {contact_form email="name@mail.de} definierten email-Adressen wirklich dringend schutzbedürftig?
Würde das ganz normale cmsms-Kontaktformular function.contact_form.php v1.5. auch mit der von cyberman genannten Javascript-Technik funktionieren?

3) Sind die in einem cms im Klartext genannten mailto-Adressen genauso robots-gefährdet wie in normalen html-Homepages?

Beitrag geändert von smalladmin (13. August 2011 22:23)

Offline

#6 13. August 2011 22:39

piratos
arbeitet mit CMS/ms
Registriert: 12. August 2011
Beiträge: 545

Re: [GELÖST] Email-Adressen schützen?

smalladmin schrieb:

1) Der Tipp von piratos funktioniert vermutlich nur mit der im cmsms hinterlegten admin-email-Adresse oder wie kommt die Routine zu der Klartext-email?

Cyberman hat das gleiche jedoch in deutsch als Link gepostet.

Man sollte das auch mal lesen, vereinfacht einfach alles ein wenig.

mailto kann verschiedene Formate machen und es ist ein von Smarty mitgeliefertes Standardplugin.
Die Mailadresse wird wie bei einem Plugin üblich als Parameter übergeben.
Da es ein Standardplugin ist, ist es völlig unabhängig von irgendwelchen Systemadressen, im Klartext, das hat keine Ahnung wie die admin-email-Adresse aussieht.
Die Ausgabe ist von jedem Browser lesbar und anklickbar.

Die Nockenfellösung produziert gleiches jedoch umständlicher, geht natürlich auch.

Es gibt keinen Schutz vor Auslesung über Bots, jedoch ist der Aufwand erheblich höher und das machen eben nicht alle Bots mit.

Ansonsten schreibt man sich eine Sammlung von Kontaktforms zusammen und steuert damit  ein Actionscript mit anonymen Parametern.

Offline

#7 13. August 2011 23:26

smalladmin
kennt CMS/ms
Registriert: 31. Juli 2011
Beiträge: 140

Re: [GELÖST] Email-Adressen schützen?

Sorry, das ist mir alles momentan etwas zu hoch. Und nach zig Stunden Raufen mit cmsms brauche ich wohl erst mal 1 Woche Abstand, bevor ich mich wieder in Funktionen und scripts vertiefe.

Ich wäre zufrieden, vorerst NUR eine klare Antwort auf meine letzte Frage zu bekommen (ich formuliere sie noch unmissverständlicher)

a) Wenn ich in der Seite schreibe: Sie können eine email senden an max.meier@web.de
b) Wenn ich in der Seite ein Modul definiere {contact_form email="name@mail.de"}

sind dann beim Content Management System "cms made simple" die Adressen eine genauso leichte Beute für robots wie bei normalen html-Auftritten?

Bitte mal präzise nur auf diese Frage eingehen.
Hintergedanke ist: Wenn allein durch die Architektur "Content Management System" die Adressen siebzigprozentig geschützt sind, dann würde ich VORERST auf einen Schutz verzichten bis ich wieder Lust und Zeit zum Basteln habe.

Beitrag geändert von smalladmin (13. August 2011 23:30)

Offline

#8 13. August 2011 06:42

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.934
Webseite

Re: [GELÖST] Email-Adressen schützen?

a) Bei allen Lösungen ist dies Möglich. Die Lösung von mir mag "umständlicher" sein, dafür kannst du die E-Mailadresen normal schreiben. Klickt jemand im Browser auf dem mailto: Link, öffnet sich das Mailprogramm. Beispiel: http://demo.blattertech.ch/ (zuoberst im Inhalt)

Wenn du nun keinen Schutz einstellst, sind die E-Mailadressen nicht geschützt. Das CMS alleine ohne Maskierung der Mailadressen hilft kein Prozent beim Schutz.

b) Hier sind die Mailadressen zu 100% geschützt und können nicht abgegriffen werden. Der Kunde füllt das Formular aus und dieses wird an die definiert E-Mailadresse gesendet.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#9 13. August 2011 09:15

smalladmin
kennt CMS/ms
Registriert: 31. Juli 2011
Beiträge: 140

Re: [GELÖST] Email-Adressen schützen?

Vielen Dank @ nockenfell.

Ich werde dann vorerst nur mit Kontaktformularen arbeiten bis ich wieder Zeit zum basteln habe.
Email der Seitenbetreiber würde nur benötigt wenn die Besucher ein File uploaden wollen. Das ist sehr selten und dann könnten sie danach fragen.
Viele Grüße.

Offline

#10 13. August 2011 10:11

piratos
arbeitet mit CMS/ms
Registriert: 12. August 2011
Beiträge: 545

Re: [GELÖST] Email-Adressen schützen?

Also um das mal klar zu sagen - für alle Emailadressen die in irgend einer Form lesbar auftauchen gibt es absolut keinen 100% Schutz, ja sogar nicht einmal wenn diese als Image angezeigt werden.

Verklausuliert man diese, wird die Hürde natürlich höher und das teils erheblich. Bots sind in der Regel einfach gestrickt und geben sich nicht stundenlang mit einer "Entschlüsselung" ab, denn Mailadressen gibt es genug.
Beispiel:  der Spamversand an 100 Millionen Mailadressen kostet gerade mal 300 US $, da kann man sich lebhaft vorstellen, das man für die Beschaffung von Mailadressen keine Zeit ausgeben wird.

Der einzige Schutz wäre also der mittels einer Form Emails zu verschicken, bei denen die Mailadresse nicht auftaucht, weil alles intern abgewickelt wird.

Was Effizienz betrifft solltest du eine Testseite machen und  Vorschläge da gleich testen. Der Einsatz z.B. von mailto dauert nur Sekunden und man kann sehen was dabei heraus kommt.
Eine Diskussion ohne Test kann erheblich länger dauern und man hat kein Ergebnis.

Offline

#11 13. August 2011 10:21

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: [GELÖST] Email-Adressen schützen?

Eine weitere Alternative wäre auch, daß man sich die Emailadresse aus dem Custom Dropdown des Tiny nimmt.
Ich mach das meistens so:

1) Emailadresse encoden mit dem Hivelogic Encoder
  (Verschlüsselt bis zum Erbrechen!)

2) Diesen Code in {literal} Tags packen und in einen GCB rein

3) In der Tiny Config -> Advanced im Feld Custom Dropdown dann den GCB so einbinden:
Info Emailadresse|{global_content name=\"InfoEmailadresse\"}

Somit kann man, wo immer man die Adresse braucht, sie aus dem Dropdown einfügen. Das kapiert sogar mein unerfahrenster User.

Die Hivelogic Geschichte verschonte mich in den letzten Jahren ganz gut vor SPAM.

Offline

#12 13. August 2011 13:14

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [GELÖST] Email-Adressen schützen?

smalladmin schrieb:

Sorry, das ist mir alles momentan etwas zu hoch.

Ist doch gar nicht so schwer - einfach im laufenden Text dies einfügen

{mailto address="max.meier@web.de" encode="hex"}

und das Ergebnis sollte in etwa so wie in deinem ersten Posting aussehen wink - wird dann auch nicht vom tinyMCE verhackstückt.

Offline

#13 13. August 2011 15:02

smalladmin
kennt CMS/ms
Registriert: 31. Juli 2011
Beiträge: 140

Re: [GELÖST] Email-Adressen schützen?

Hallo, cyberman

Schaut rel. einfach aus - ist wohl auch für mich zu bewältigen und ich hätte das gerne.
Aber ohne daß man diese Funktion mailto besitzt läuft wohl nichts.
Ich habe jetzt nach dem download-File gesucht bis daß der Rauch aufsteigt, aber nichts gefunden.
Den links sind nur beschreibende htm-Dateien hinterlegt.
Wo kriege ich die php-Funktion als file?  mad

Beitrag geändert von smalladmin (13. August 2011 15:06)

Offline

#14 13. August 2011 15:57

piratos
arbeitet mit CMS/ms
Registriert: 12. August 2011
Beiträge: 545

Re: [GELÖST] Email-Adressen schützen?

mailto ist ein Bestandteil von Smarty und einfach vorhanden, einsetzen und gut ist.

Offline

#15 13. August 2011 17:12

smalladmin
kennt CMS/ms
Registriert: 31. Juli 2011
Beiträge: 140

Re: [GELÖST] Email-Adressen schützen?

Da sind jetzt vorher ganz mächtige Mißverständnisse entstanden, weil es ein mailto als html-Befehl gibt und ein mailto als Modul. Und weil cyberman den Parameter
text="Mail senden"
nicht erwähnt hat.
Nach viel Probieren klappt es jetzt, halleluja heureka. Das Ergebnis ist mir bezüglich Sicherheit völlig ausreichend.

Vielen Dank an alle für die Hilfe!

Beitrag geändert von smalladmin (01. September 2011 18:28)

Offline

#16 13. August 2011 17:45

smalladmin
kennt CMS/ms
Registriert: 31. Juli 2011
Beiträge: 140

Re: [GELÖST] Email-Adressen schützen?

Darf ich bitte noch eine Frage nachschieben:
Die zu schützende email-Adresse befindet sich ja nicht auf der Hauptseite index.php sondern auf einer Unterseite.
Diese ist ja im Webspace gar nicht existent sondern wird erst beim Aufruf generiert.
Daher frage ich mich jetzt, wieso die email-Adresse überhaupt geschützt werden muß. War die ganze Arbeit unnötig?  roll

Beitrag geändert von smalladmin (13. August 2011 17:46)

Offline

#17 13. August 2011 19:17

Cherry
arbeitet mit CMS/ms
Registriert: 15. Dezember 2010
Beiträge: 529

Re: [GELÖST] Email-Adressen schützen?

Alle deine Seiten sind so zunächst nicht existent. Bis sie halt aufgerufen werden. Dann setzt das System sie zusammen, so daß die Seiten halt so aussehen wie man das von Seiten eben erwartet. Das heißt: sobald ein Besucher oder ein Bot vorbeikommt, wird die Seite dafür generiert. Mit den E-Mail Adressen und allem was dazu gehört. Ergo kann ab da auch ne E-Mail Adresse ausgelesen und notfalls misbraucht werden. Macht also durchaus Sinn sich dazu Gedanken zu machen.

VG
Cherry

Offline

#18 13. August 2011 20:03

smalladmin
kennt CMS/ms
Registriert: 31. Juli 2011
Beiträge: 140

Re: [GELÖST] Email-Adressen schützen?

Ja, ich habe grade die index.php runtergeladen und angeschaut. Da sind keine Anweisungen drin wie die Seite aussehen soll sondern kryptische Befehle an den Webserver. Ich dachte bisher, daß die Bots bloß die vorhandenen Files auf dem Webspace durchsuchen.
Ist ja erstaunlich, daß die surfen können wie ein Mensch. Ok, so leidlich kann ich mir jetzt dieses technische Wunder vorstellen. Vielen Dank, Sache erledigt.

Offline

#19 13. August 2011 20:43

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] Email-Adressen schützen?

smalladmin schrieb:

Ja, ich habe grade die index.php runtergeladen und angeschaut. Da sind keine Anweisungen drin wie die Seite aussehen soll sondern kryptische Befehle an den Webserver.

big_smile big_smile big_smile big_smile big_smile
Eben. Und diese kryptsichen Befehle generieren die Seite, die am Ende dem Browser (oder Bot) zurückgesendet wird. Wichtig ist nicht, was auf dem Server tatsächlich an Dateien gespeichert ist, sondern was der Server (wie auch immer) an den Browser (oder Bot) zurücksendet. Das kann eine (statische) HTML Seite sein (die tatsächlich so auf dem Webspace existiert) oder eben alles mögliche. Eine PDF-Datei, ein Bild, CSS Dateien ... es kann auch einfach nur reiner, durch kryptsiche Skripte generierter Text sein, der einfach nur aussieht wie eine HTML Seite, ein Javascript, ein Stylesheet ... was auch immer gerade benötigt wird. Dem Browser (oder Bot) ist das doch völlig Schnuppe. Nur das Endergebnis interessiert ihn. Niemand weiß was da auf dem Server tatsächlich abgeht, wenn er Deine Adresse eingibt. Hauptsache er kann mit dem Ergebnis etwas anfangen.

Ich dachte bisher, daß die Bots bloß die vorhandenen Files auf dem Webspace durchsuchen.

Die Bots können nur das durchsuchen, worauf sie Zugriff haben bzw. von dem sie wissen, dass es existiert. Woher soll ein Bot wissen, was es auf Deinem Webspace alles so gibt?  Auf Deiner Startseite sind Links (das Menü). Diese Links führen zu irgendwelchen Adressen. Und erst jetzt weiß der Bot, was es noch so alles bei Dir gibt. Sonst wäre es ja nicht verlinkt. Und selbst wenn es nicht verlinkt sondern nur Text wäre, würde er es trotzdem als Web-Adresse erkennen. Wegen dem Schema: http doppelpunkt doppelslash irgendwas punkt irgendwasanderes. Nun scannt er auch diese Adressen. Und wenn dort dann irgendwas zu finden ist, was nach einer Email-Adresse aussieht, dann wird das gespeichert. Denn auch Email-Adressen sind ja bekanntlich alle nach einem leicht durchschaubaren Schema aufgebaut: irgendwas @ irgendwasanderes punkt nochirgendwas wink

Selbst wenn man das jetzt irgendwie verschlüsselt, dann ist der Bot in der Lage, das Verschlüsselte zu entschlüsseln. Allerdings nur dann, wenn es einfache, leicht zu erkennende und vor allem umkehrbare Verschlüsselungen sind wie z.B. base64, hexadezimal, HTML Entities oder irgendwelche anderen Zeichensatzkodierungen, die beinahe jeder Browser kennt (und kennen muss, denn sonst könnte er es dem Betrachter - dem Menschen - nicht korrekt anzeigen oder an das Mailprogramm übergeben).

Javascripts, die die Email-Adressen dynamisch aus irgendeinem Salat generieren, den keiner kennt (außer dem Skript selbst), sind da schon etwas sicherer, da kaum ein Bot das Skript tatsächlich ausführt, um das Ergebnis zu prüfen. (Nachteil: Wenn kein Javascript aktiviert ist -> nix zu sehen. Auch für Menschen nicht.) Aber auch hier gilt: Wenn es einen Weg hinein gibt, gibt es auch einen Weg hinaus. Wenn man etwas verschlüsseln kann, kann man es auch wieder entschlüsseln. Alles nur eine Frage des Aufwands. (Ausnahme wären sogenannte Einwegverschlüsselungen wie md5 etc., aber damit könnte in diesem Falle niemand etwas anfangen. Also auch das Mailprogramm nicht.)

Fazit: wie hier schon mehrfach betont wurde, einen 100%igen Schutz für öffentlich sichtbare Email-Adressen gibt es nicht und wird es (leider) auch nie geben. Man kann lediglich die Warscheinlichkeiten, dass ein Bot eine Email-Adresse erkennt, verringern. (und das wäre für mich persönlich immer noch besser als garkein Schutz). Die Lösung mit dem Kontaktformular, bei der die Email-Adresse nie ausgegeben wird, sondern nur serverseitig bekannt ist, wäre die einzige Lösung, um Email-Adressen zu schützen. Aber das sollte ja eigentlich auch irgendwie jedem einleuchten: Was nirgends ausgegeben wird, kann nirgends misbraucht werden.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#20 14. August 2011 23:36

smalladmin
kennt CMS/ms
Registriert: 31. Juli 2011
Beiträge: 140

Re: [GELÖST] Email-Adressen schützen?

Danke für Deine ausführliche Antwort.
Ich werde nun bloß 1 email-Adresse auf der Homepage outen, alles andere mache ich mit Kontaktformularen.
Wer unbedingt ein file uploaden will (was sehr selten vorkommt), kann ja per Kontaktformular nach der email fragen.
Bei der email, die ich oute (poststelle...), habe ich keine Bedenken. Zum einen ist ja Pflicht, eine email mitzuteilen.
Zum anderen läuft dort der mail-Weg über einen großen aktuellen zentralen Spamfilter, der 95% reinigt.
Außerdem wird diese email-Adresse vom Adress-Eigentümer selbst auf seinen vielbesuchten Profiseiten im Klartext geoutet, sodaß ich ihn nicht auf höchstem Niveau schützen muß, wenn er sich selbst nicht schützt.
Also, paßt dann schon alles. Es lebe das Kontaktformular  cool

Beitrag geändert von smalladmin (01. September 2011 18:29)

Offline

#21 23. April 2014 15:55

COR9
Server-Pate
Ort: Dresden
Registriert: 09. November 2010
Beiträge: 281

Re: [GELÖST] Email-Adressen schützen?

nockenfell schrieb:

Danach baust du folgendes JavaScript ein:

Mal ganz naiv gefragt: Wo ist danach?

Offline

#22 23. April 2014 16:00

COR9
Server-Pate
Ort: Dresden
Registriert: 09. November 2010
Beiträge: 281

Re: [GELÖST] Email-Adressen schützen?

Oha, den Beitrag gibt's hier nochmal für 1.11.x und da ist es erklärt. Erstmal den Gockel fragen...

Offline