Jeg har lavet en kontaktformular, hvor indholdet af formularen bliver sendt
til mig i en e-mail. Scriptet er baseret på PERFECT feedback.php lavet af
Dem T. Pilafian (
http://www.centerkey.com/php).
Jeg har ændret og tilføjet lidt til scriptet, men det virker fint. Problemet
er, at jeg er begyndt at få en masse spam mails, som tilsyneladende er sendt
via feedback.php scriptet.
Hvordan kan jeg lave scriptet "spam-proof", så jeg kan slippe for alle de
mails? Kan man f.eks. kun tillade at scriptet bliver kaldt fra én bestemt
side?
Her er først feedback.php:
De tre første linier har jeg lavet for, at prøve at stoppe misbruget, men
det har ikke hjulpet.
<?
// based on the PERFECT feedback.php by Center Key Software
(
www.centerkey.com)
$Besked = @$_POST['besked'];
if(!isset($Besked) || ($Besked==""))
exit;
$Name = @$_POST['navn'];
$Email = @$_POST['email'];
// Configuration Settings
if(!isset($Email) || (isset($Email)&&($Email=="")))
$SendFrom = "Form Feedback <feedback@hojegladsaxe.dk>";
else {
if(isset($Name) && ($Name!=""))
$SendFrom = "$Name <$Email>";
else
$SendFrom = $Email;
}
// $SendFrom = "Form Feedback <feedback@hojegladsaxe.dk>";
$SendTo = "info@hojegladsaxe.dk";
// $SendTo = "mug@fvst.dk";
$SubjectLine = "Besked skrevet online på
www.hojegladsaxe.dk";
$ThanksURL = "takmail.html"; //confirmation page
$Divider = "----------------------------------------";
// Build Message Body from Web Form Input
$MsgBody = "Indhold af formular afsendt fra
www.hojegladsaxe.dk:\n$Divider\n";
foreach ($_POST as $Field=>$Value)
$MsgBody .= "$Field: $Value\n";
$MsgBody .= "$Divider\nip-adresse: $REMOTE_ADDR - host: " .
@gethostbyaddr($REMOTE_ADDR);
$MsgBody .= "\nbrowser: $HTTP_USER_AGENT\n";
$MsgBody = htmlspecialchars($MsgBody); //make content safe
$MsgHeaders = "From: $SendFrom\r\n";
$MsgHeaders .= "MIME-Version: 1.0\r\n";
$MsgHeaders .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
$MsgHeaders .= "X-Mailer: PHP/" . phpversion();
// Send E-Mail and Direct Browser to Confirmation Page
mail($SendTo, $SubjectLine, $MsgBody, $MsgHeaders);
header("Location: $ThanksURL");
?>
Her er den HTML, som kalder scriptet:
(Kan ses i aktion på
www.hojegladsaxe.dk/kontakt.html)
<form method="post" action="feedback.php" onSubmit="return
checkForm(this);">
<table>
<tr>
<td valign="top">Dit navn:</td>
<td valign="top"><input type="text" name="navn" size="40"
class="textbox"></td>
</tr>
<tr>
<td valign="top">Din e-mail adresse:</td>
<td valign="top"><input type="text" name="email" size="30"
class="textbox"></td>
</tr>
<tr>
<td valign="top">Emne:</td>
<td valign="top"><select size="1" name="emne" class="textbox">
<option selected>Vælg et emne</option>
<option value="Kommentar">Kommentar til hjemmesiden</option>
<option value="Fejl">Fejl på hjemmesiden</option>
<option value="Spørgsmål">Spørgsmål</option>
<option value="Andet">Andet</option>
</select></td>
</tr>
<tr>
<td valign="top">Besked:</td>
<td valign="top"><textarea name="besked" cols="49" rows="6"
class="textbox"></textarea></td>
</tr>
<tr>
<td valign="top"> </td>
<td valign="top"><br>
<input type="submit" value="Send besked" class="knap">
<input type="reset" value="Slet alle felter"
class="knap"></td>
</tr>
</table>
</form>
Og til sidst et eksempel på de mails jeg får:
-----Oprindelig meddelelse-----
Fra: plb@hojegladsaxe.dk [mailto:plb@hojegladsaxe.dk]
Sendt: 11. september 2005 03:11
Til: info@hojegladsaxe.dk
Emne: Besked skrevet online på
www.hojegladsaxe.dk
Indhold af formular afsendt fra
www.hojegladsaxe.dk:
----------------------------------------
besked: plb@hojegladsaxe.dk
Content-Type: multipart/mixed;
boundary="===============0641542150=="
MIME-Version: 1.0
Subject: b123f231
To: plb@hojegladsaxe.dk
bcc: jrubin3546@aol.com
From: plb@hojegladsaxe.dk
This is a multi-part message in MIME format.
--===============0641542150==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
kkclqew
--===============0641542150==--
email: plb@hojegladsaxe.dk
navn: plb@hojegladsaxe.dk
----------------------------------------
ip-adresse: 67.109.66.254 - host: 67.109.66.254.ptr.us.xo.net
browser:
Er der nogen, der har et forslag til, hvordan jeg kan komme disse
irriterende mails til livs?
Med venlig hilsen
Mads Gildberg
(mgildberg AT hotmail DOT com)