Voor de war-against-spam, hierbij een script dat ik vaak gebruik:
File: encryption_js.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| function decrypt(codelist,cnt) {
var thiscode, thischar;
var defcon=<? echo $defcon; ?>;
codelist=unescape(codelist);
var L = codelist.length;
var AddrDecoded = "";
for (var x=0; x < L; x++) {
thiscode = codelist.charCodeAt(x);
thischar = String.fromCharCode(thiscode+cnt+defcon);
AddrDecoded += thischar;
}
description = AddrDecoded;
return AddrDecoded;
}
function writeAntiSpamMailto(coded_email,cnt,naam) {
var decoded_email=decrypt(coded_email,cnt);
if (naam=="") {
naam=decoded_email;
}
var strOutput = "<a href=\"mailto:"+decoded_email+"\" onmouseover=\"status='mailto:"+decoded_email+" --> Email mining not allowed. Spam yourself';return true\" onmouseout=\"status='';return true\">" + unescape(naam) + "</a>";
document.write(strOutput);
} |
File: encryption.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <?
function antiSpamEncrypt($castring,$cnstring) {
global $defcon;
$eseed=rand(1,10);
$AddrEncoded = "";
$sL=strlen($castring);
for ($ex=0; $ex < $sL; $ex++) {
$thiscode =ord(substr($castring,$ex,1));
$newordval=intval($thiscode)-intval($eseed)-intval($defcon);
$thischar = chr($newordval);
$AddrEncoded = $AddrEncoded.$thischar;
}
echo "<script>writeAntiSpamMailto(\"".rawurlencode($AddrEncoded)."\",".$eseed.",\"".rawurlencode($cnstring)."\");</script>";
}
?> |
En in het bestand waar je een email adres in wilt plaatsen:
PHP:
1
2
3
4
5
6
7
8
9
| $defcon=rand(0,9);
require_once("encryption.php");
..
..
..
<script language="JavaScript" src="encryption_js.php?defcon=<? echo $defcon; ?>"></script>
..
..
antiSpamEncrypt(htmlspecialchars($email),htmlspecialchars($name)); |
Dit zorgt ervoor dat:
1. de mailto-link wordt versleuteld
2. de sleutel iedere keer dat de pagina wordt opgevraagd anders is
Het is nog steeds niet 100% proof, maar ja, het is een aardig obstakel.
To study and not think is a waste. To think and not study is dangerous.