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