E-mailadres veilig weergeven
In een PHP programmaatje zet ik een e-mailadres in een output. In dit geval kan een hacker ergens in het internetverkeer het uitpikken voor zijn SPAM-werk! Nu vraag ik me af, HOE ik het kan beveiligen tegen het stelen van dit adres uit haar output?
je kan het al moeilijker maken als je het over een beveiligde verbinding stuurd genaamd: SSL en UTF-8
op een plaatje zetten dmv GD.. en daarop een achtergrond met lijntjes oid..
één vraagje.. is de PHPmailer class een veilige mailer zodat ik geen spam ontvang? het is nl. wel een handige class van wat ik ervan gezien heb.
Of doe het zo: bla[at]bla[dot]nl
Wat Terence's antwoord betreft, vind ik het nogal omslachtig, want mijn adres database wordt af en toe ge-updated. Uit de database wordt er een adreslijst automatisch via mijn PHP programmaatje gecreerd voor mijn website.
Wat pgFrank's antwoord betreft, ben ik er wel blij mee, maar ... een spam-gebruiker weet toch, dat de tekst '@' een apestaartje betekent, zodat hij het gemakkelijk kan oppikken en er een compleet e-mailadres kan maken. Of heb ik het juist mis?
Wat Arjan's antwoord betreft, ben ik er ook wel blij mee, maar ... ik heb juist de tekst '<a href="mailto:bla[at]bla[dot]nl">bla[at]bla[dot]nl</a>'. Helaas werkt het niet.
Heeft iemand misschien een betere tip?
Jan schreef op 21.06.2007 11:24:
Wat Terence's antwoord betreft, vind ik het nogal omslachtig, want mijn adres database wordt af en toe ge-updated. Uit de database wordt er een adreslijst automatisch via mijn PHP programmaatje gecreerd voor mijn website.
Wat Arjan's antwoord betreft, ben ik er ook wel blij mee, maar ... ik heb juist de tekst '<a href="mailto:bla[at]bla[dot]nl">bla[at]bla[dot]nl</a>'. Helaas werkt het niet.
Heeft iemand misschien een betere tip?
Wat Arjan's antwoord betreft, ben ik er ook wel blij mee, maar ... ik heb juist de tekst '<a href="mailto:bla[at]bla[dot]nl">bla[at]bla[dot]nl</a>'. Helaas werkt het niet.
Heeft iemand misschien een betere tip?
Terence bedoelt niet dat je voor elk email adres een andere plaatje aan gaat maken, maar dmv GD een dynamisch plaatje bijv email.php?id=1 waarop je het email adres van id 1 weergeeft.
Een mailto erin zetten zou ik niet doen! Die moet je zowieos in het goede formaat zetten anders werkt het niet eens en spambots vinden die ook direct.
Dan kan je toch ook alleen het apenstaartje vervangen door een plaatje maarja dan kan je geen mailto meer toepassen als je dat wilt
Voorlopig heb ik Javascript gebruikt om een 'gescrambled' e-mailadres (GEEN e-mailadres indien geen Javascript) terug om te zetten als volgt:
function eml(emlnam,emlsrv)
{
document.write('<a href="mailto:' + emlnam + '@' + emlsrv + '">');
document.write(emlnam + '@' + emlsrv);
document.write('</a>');
}
in html:
<script type="text/javascript">eml('$$emlnam$$','$$emlsrv$$');</script>
Is het wel veilig? Of toch niet?
Laat mij graag weten, HOE het veel beter kan worden?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$jouwtekst = '[email protected]';
//-- width & height of img
$width = strlen($jouwtekst) * 7;
$height = 15;
//-- create img
$txtimg = imagecreate($width, $height);
//-- set fontcolor & bgcolor
imagecolorallocate($txtimg, 255, 255, 255);
$txtcolor = imagecolorallocate($txtimg, 0,0,0);
//-- insert text
imagestring($txtimg, 3, 0, 0, $jouwtekst, $txtcolor);
//-- send header information
header("Content-Type: image/png");
//-- show img
imagepng($txtimg);
//-- destroy img
imagedestroy($txtimg);
?>
$jouwtekst = '[email protected]';
//-- width & height of img
$width = strlen($jouwtekst) * 7;
$height = 15;
//-- create img
$txtimg = imagecreate($width, $height);
//-- set fontcolor & bgcolor
imagecolorallocate($txtimg, 255, 255, 255);
$txtcolor = imagecolorallocate($txtimg, 0,0,0);
//-- insert text
imagestring($txtimg, 3, 0, 0, $jouwtekst, $txtcolor);
//-- send header information
header("Content-Type: image/png");
//-- show img
imagepng($txtimg);
//-- destroy img
imagedestroy($txtimg);
?>
is een eerste stap..
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
Beter is toch de obfucate methode
Wil je het in een output dan hier een makkelijke functie daarvoor
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
function email_obfuscator( $email, $encode_everything = 1 ) {
if ( !$encode_everything )
$email = str_replace(array('@', '.'), array('@', '.'), $email);
else {
$new_email = '';
for( $i=0; $i < strlen($email); ++$i ) {
$n = rand(0,1);
if( $n )
$new_email .= '&#x'. sprintf("%X",ord($email{$i})) . ';';
else
$new_email .= '&#' . ord($email{$i}) . ';';
}
$email = $new_email;
}
return $email;
}
?>
function email_obfuscator( $email, $encode_everything = 1 ) {
if ( !$encode_everything )
$email = str_replace(array('@', '.'), array('@', '.'), $email);
else {
$new_email = '';
for( $i=0; $i < strlen($email); ++$i ) {
$n = rand(0,1);
if( $n )
$new_email .= '&#x'. sprintf("%X",ord($email{$i})) . ';';
else
$new_email .= '&#' . ord($email{$i}) . ';';
}
$email = $new_email;
}
return $email;
}
?>
Dan de output