Login | ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/php_antispam/trunk/docs/antispam3-description.txt
Revision: 2
Committed: Thu May 2 10:15:53 2019 UTC (9 months, 4 weeks ago) by daniel-marschall
Content type: text/plain
File size: 3122 byte(s)
Log Message:
Initial release to SVN

File Contents

# Content
1 ALAS-AntiSpam-Schutz
2
3 Folgende Funktion soll euch helfen, E-Mail-Adressen per JavaScript-Ausgabe sicher darzustellen, sodass der Benutzer sie auch anklicken und verwenden kann. Das Script wird als sehr sicher eingestuft.
4
5 [b]Code[/b]
6
7 [code]<?php
8
9 // PHP-AntiSpam-Funktion "secure_email", Version 3.02 of 2009-09-23
10 // von Daniel Marschall [www.daniel-marschall.de]
11
12 function secure_email($email, $linktext, $crypt_linktext)
13 {
14 // No new lines to avoid a JavaScript error!
15 $linktext = str_replace("\r", ' ', $linktext);
16 $linktext = str_replace("\n", ' ', $linktext);
17
18 if (!function_exists('alas_js_crypt'))
19 {
20 function alas_js_crypt($text)
21 {
22 $tmp = '';
23 for ($i=0; $i<strlen($text); $i++)
24 {
25 $tmp .= 'document.write("&#'.ord(substr($text, $i, 1)).';");';
26 }
27 return $tmp;
28 }
29 }
30
31 if (!function_exists('alas_js_write'))
32 {
33 function alas_js_write($text)
34 {
35 $text = str_replace('\\', '\\\\', $text);
36 $text = str_replace('"', '\"', $text);
37 $text = str_replace('/', '\/', $text); // W3C Validation </a> -> <\/a>
38 return 'document.write("'.$text.'");';
39 }
40 }
41
42 $aus = '';
43 if ($email != '')
44 {
45 $aus .= '<script language="JavaScript" type="text/javascript"><!--'."\n";
46 $aus .= alas_js_write('<a href="');
47 $aus .= alas_js_crypt('mailto:'.$email);
48 $aus .= alas_js_write('">');
49 $aus .= $crypt_linktext ? alas_js_crypt($linktext) : alas_js_write($linktext);
50 $aus .= alas_js_write('</a>').'// --></script>';
51 }
52
53 return $aus;
54 }
55
56 ?>[/code]
57
58 [b]Beschreibung[/b]
59
60 Jedes Zeichen wird einzeln mit dem Zeichen-Code in einer einzelnen Zeile geschrieben. Selbst mailto, @ und .de werden mitverschlüsselt. Folglich kann man den Mechanismus als sehr sicher einstufen.
61
62 Der Benutzer muss JavaScript aktiviert haben, um die E-Mail-Adresse zu sehen. Die Verwendung von JavaScript ist aber Webseiten üblich und ist bei allen Browser standardmäßig aktiviert.
63
64 Vorteilhaft ist, dass kein SpamBot diesen Mechanismus kennt, da dieser nicht häufig angewandt wird. Ich bitte daher, diesen Spamschutz nicht in große Systeme ohne Erlaubnis einzubauen, da bei zu starkem Bekanntheitsgrades der JavaScript-Struktur, die Spam-Bots dem Mechanismus entgegenwirken könnten.
65
66 Auch ohne PHP ist der Spamschutz möglich, da der Code bereits im Vorraus berechnet und die Ausgabe in einer HTML-Datei eingebaut werden kann.
67
68 [b]Benutzung[/b]
69
70 1. Parameter: E-Mail-Adresse ohne Angabe von "mailto:"
71 2. Parameter: Angabe des Linktextes oder des Linkbildes
72 3. Parameter: Soll der 2. Parameter auch verschlüsselt werden? Nur ein Text darf verschlüsselt werden, ein Bild nicht! Der Linktext muss verschlüsselt werden, wenn er die E-Mail-Adresse enthält, da sonst der Schutz verfällt.
73
74 [b]Beispiele[/b]
75
76 [code]<?php
77
78 echo secure_email('test@example.com', 'Schreib mir!', 0);
79 echo secure_email('test@example.com', 'test@example.com', 1);
80 echo secure_email('test@example.com', '<img src="...">', 0);
81
82 ?>[/code]
83
84 Das Script ist Teil meiner ALAS-Kampagne und wird ViaThinkSoft-Weit inkl. Personal WebBase, dev.board und Partnerseiten verwendet.

Properties

Name Value
svn:mime-type text/plain