/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Sikker formmail
Fra : Martin Schultz


Dato : 03-11-05 16:47

Hejsa

Jeg vil gerne have en formmail på min hjemmeside. Dog er det meget
vigtigt for mig at den er sikkert lavet og ikke kan misbruges til SPAM.

Jeg har overvejet følgende kode men føler mig ikke overbevist om at det
ikke kan misbruges. Har i nogen gode råd?


$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];

$strippetName = strip_tags($name);
$strippetEmail = strip_tags($email);
$strippetMessage = strip_tags($message);


PRINT "<CENTER>";
PRINT "Hej, $strippetName .";
PRINT "<BR><BR>";
PRINT "Tak for din henvendelse.<BR><BR>";
PRINT "Jeg vil svare hurtigst muligt til $strippetEmail.";
PRINT "</CENTER>";

mail("min@email.adresse",
"adsltips.dk",
"Brugerens navn: $strippetName
Brugerens email adresse er $strippetEmail.
Beskeden er: $strippetMessage.", "From: $strippetEmail\r\n");

--
Besøg http://www.adsltips.dk for guider til
ADSL og opsætning af Cisco/Zyxel/Aethra routere.
Alt jeg skriver på usenet er mine egne personlige meninger
med mindre andet er angivet.

 
 
Jacob Atzen (03-11-2005)
Kommentar
Fra : Jacob Atzen


Dato : 03-11-05 17:11

On 2005-11-03, Martin Schultz <news2005@adsltips.invalid> wrote:
> Jeg har overvejet følgende kode men føler mig ikke overbevist om at det
> ikke kan misbruges. Har i nogen gode råd?
>
>
> $name = $_POST['name'];
> $email = $_POST['email'];
> $message = $_POST['message'];
>
> $strippetName = strip_tags($name);
> $strippetEmail = strip_tags($email);
> $strippetMessage = strip_tags($message);
>
>
> PRINT "<CENTER>";
> PRINT "Hej, $strippetName .";
> PRINT "<BR><BR>";
> PRINT "Tak for din henvendelse.<BR><BR>";
> PRINT "Jeg vil svare hurtigst muligt til $strippetEmail.";
> PRINT "</CENTER>";
>
> mail("min@email.adresse",
> "adsltips.dk",
> "Brugerens navn: $strippetName
> Brugerens email adresse er $strippetEmail.
> Beskeden er: $strippetMessage.", "From: $strippetEmail\r\n");

Så vidt jeg kan se får du ikke fjernet \r og \n fra $strippetEmail, det
bør du gøre. Eller endnu bedre, nægte tegn, der ikke hører hjemme i en
e-mail adresse, f.eks. via et regulært udtryk. Følgende artikel hos Zend
kan f.eks. være et godt udgangspunkt:

<http://www.zend.com/zend/spotlight/ev12apr.php#Heading4>

Bemærk dog, at det regulære udtryk de bruger ikke længere er helt nok
til at fange alle gyldige mail adresser, da vi jo nu har f.eks. .info
domæner.

Det virker i øvrigt lidt fjollet, at du først tildeler til $email for
umiddelbart efter at lave en $strippetEmail. Hvorfor ikke bare:

$email = strip_tags($_POST['email']);

Og så fremdeles.

--
Med venlig hilsen
- Jacob Atzen

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408526
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste