Hallo,
es werden Spamnachrichten über ein Mailformular auf meiner Internetseite versendet. Ich bin auch schon bei mehreren Blacklists gelistet.
Der Fehler lag offensichtlich in der "Absenderzeile". Man konnte dort ohne weiteres "To:" und "Bcc:" Blöcke einfügen.
Ich habe mir nun eine Funktion geschrieben die:
[1] den Referer überprüft
[2] den Absender auf Zeilenumbrüche überprüft
Ich glaube dass das alles war, um dem Spam entgegen zu wirken. Aber ich möchte sicherheitshalber nochmal andere Profis über mein Script schauen lassen um auch wirklich keine Sicherheitslücke mehr zu hinterlassen.
Also hier mein Script:
es werden Spamnachrichten über ein Mailformular auf meiner Internetseite versendet. Ich bin auch schon bei mehreren Blacklists gelistet.
Der Fehler lag offensichtlich in der "Absenderzeile". Man konnte dort ohne weiteres "To:" und "Bcc:" Blöcke einfügen.
Ich habe mir nun eine Funktion geschrieben die:
[1] den Referer überprüft
[2] den Absender auf Zeilenumbrüche überprüft
Ich glaube dass das alles war, um dem Spam entgegen zu wirken. Aber ich möchte sicherheitshalber nochmal andere Profis über mein Script schauen lassen um auch wirklich keine Sicherheitslücke mehr zu hinterlassen.
Also hier mein Script:
PHP-Code:
<?php
function mailsend($empfaenger,$betreff,$nachricht,$absender) {
$send = 0;
$hosts = array();
// hier den referer eintragen
$host[] = "http://192.168.0.2";
$host[] = "www.DeineDomainAdresse.de";
$referer = $_SERVER['HTTP_REFERER'];
$remote_addr = $_SERVER['REMOTE_ADDR'];
if($referer != "") {
if(!(ereg("\n", $absender) OR ereg("\r", $absender))) {
foreach($host as $key => $val) {
#print $key . " " . $val . " " . $referer . "<br>";
if(ereg("$val", $referer)) {
$send = 1;
#print $referer . " in $val gefunden! <br>";
break;
}
else {
#print $referer . " in $val nicht gefunden! <br>";
}
}
}
if($send == 1) {
$headers = 'From:' . $absender . "\n";
$headers.= 'Reply-To:' . $absender . "\n";
$headers.= 'X-Mailer: PHP/' . phpversion() . "\n";
$headers.= 'X-Sender-IP: ' . $remote_addr . "\n";
$headers.= "Content-type: text/html\n";
mail($empfaenger,$betreff,$nachricht,$headers);
return $send;
}
else {
$headers = "From: DeinName <Deine@eMailAdresse.tld>\n";
$headers.= "Reply-To: [email]Deine@eMailAdresse.tld[/email]\n";
$headers.= 'X-Mailer: PHP/' . phpversion() . "\n";
$headers.= 'X-Sender-IP: ' . $remote_addr . "\n";
$headers.= "Content-type: text/html\n";
$nachricht.= "<br><br>Host: $referer<br>IP: $remote_addr<br><br>$absender";
mail("Deine@eMailAdresse.tld","SERVER: Spamverdacht bei Mailversand",$nachricht,$headers);
return $send;
}
}
else {
return $send;
}
#print "SEND: " . $send;
}
?>
Kommentar