Hej allesammen!
Jeg har lavet en kontaktformular i PHP/HTML. Jeg vil høre om nogle af jeg har nogle ideer til at gøre den mere spamsikker.
Relevant HTML:
<form method="post" action="cForm.php">
<input type="text" name="name" maxlength="50" />
<input type="text" name="email" maxlength="50" />
<input type="text" name="emne" maxlength="50" />
<textarea name="besked" rows="10" cols="40"></textarea>
<input type="submit" value=" Send mail " name="submit" />
</form>
Relevant PHP:
if (isset($_POST['submit']))
{
if (
!empty($_POST['name']) &&
!empty($_POST['email']) &&
!empty($_POST['emne']) &&
!empty($_POST['besked']) &&
!strpos($_POST['name'], "mitdomæne.dk") &&
!strpos($_POST['email'], "mitdomæne.dk") &&
!strpos($_POST['name'], "@") &&
!strpos($_POST['name'], "#") &&
!strpos($_POST['name'], "£") &&
!strpos($_POST['name'], "¤") &&
!strpos($_POST['name'], "$") &&
!strpos($_POST['name'], "%") &&
!strpos($_POST['name'], "&") &&
!strpos($_POST['name'], "/") &&
!strpos($_POST['name'], "{") &&
!strpos($_POST['name'], "(") &&
!strpos($_POST['name'], "[") &&
!strpos($_POST['name'], ")") &&
!strpos($_POST['name'], "]") &&
!strpos($_POST['name'], "=") &&
!strpos($_POST['name'], "}") &&
!strpos($_POST['name'], "1") &&
!strpos($_POST['name'], "2") &&
!strpos($_POST['name'], "3") &&
!strpos($_POST['name'], "4") &&
!strpos($_POST['name'], "5") &&
!strpos($_POST['name'], "6") &&
!strpos($_POST['name'], "7") &&
!strpos($_POST['name'], "8") &&
!strpos($_POST['name'], "9") &&
!strpos($_POST['name'], "-") &&
!strpos($_POST['name'], ".") &&
!strpos($_POST['name'], ",") &&
!strpos($_POST['name'], ";") &&
!strpos($_POST['name'], ":") &&
!strpos($_POST['name'], "*") &&
!eregi("\\r",$_POST['name']) &&
!eregi("\\n",$_POST['name']) &&
!eregi("\\r",$_POST['email']) &&
!eregi("\\n",$_POST['email'])) &&
!ereg("^.+@.+\\..+$",$_POST['email'])) &&
preg_match('/^[^\\x00-\\x20()<>@,;:\\\\".[\\]\\x7f-\\xff]+(?:\\.[^\\x00-\\x20()<>@,;:\\\\".[\\]\\x7f-\\xff]+)*\\@[^\\x00-\\x20()<>@,;:\\\\".[\\]\\x7f-\\xff]+(?:\\.[^\\x00-\\x20()<>@,;:\\\\".[\\]\\x7f-\\xff]+)+$/i', $_POST['email']))
//Herfra sendes mailen...
Da serveren kører Win, kan jeg desværre ikke bruge
checkdnsrr
Hvis der returneres FALSE et sted i ovenstående bliver man sendt til en fejlside, hvor der står at IP'et er logget. Jeg regner med noget lign. det her:
<p>En fejl er opstået. Af sikkerhedsmæssige årsager, er din IP-addresse <b>
<?php echo ".getenv("REMOTE_ADDR")."; ?>
</b> blevet indskrevet i loggen.
Nogle der har forslag til forbedringer?
Indlæg senest redigeret d. 09.08.2007 13:05 af Bruger #8860