Hi@all
bevor hier das große 'schau mal hier und da, das hatten wir schon...' los geht, hab ich gemacht!!! - leider keine Lösung gefunden.
Also ich hab ein eigenes Gästebuch programmiert und bekomme seit ein paar Tagen riesige Spam-Attacken.
Jetzt hab ich schon eine BAD-IP Liste erstellt und eine Abfrage integriert.
Desweiteren übergebe ich ein MD5 verschlüsseltes Codwort zum Überprüfen auf der herkunft des Eintragenden.
Mein Formular ruft die Datei add-guest.php auf -->
Trotzdem kommt es wieder zu Spam-Einträgen.
Nur wenn ich die add_guest.php sperre bleiben die Einträge aus - logisch ?!?
Die eigentliche Eintragszeile: fputs($open, $neuinhalt); wird sogar noch mal extra geprüft.
Wie bekomme ich das Ding jetzt einigermaßen sicher gegen Spam ?
Hoffe es kann mir jemand helfen.
Wie funktioniert diese Spam-Bot -Kacke, wie kriegen die das immer wieder hin sich trotz diverser Sicherheitsabfragen einzutragen?
Thx@all
bevor hier das große 'schau mal hier und da, das hatten wir schon...' los geht, hab ich gemacht!!! - leider keine Lösung gefunden.
Also ich hab ein eigenes Gästebuch programmiert und bekomme seit ein paar Tagen riesige Spam-Attacken.
Jetzt hab ich schon eine BAD-IP Liste erstellt und eine Abfrage integriert.
Desweiteren übergebe ich ein MD5 verschlüsseltes Codwort zum Überprüfen auf der herkunft des Eintragenden.
Mein Formular ruft die Datei add-guest.php auf -->
PHP-Code:
<?
################################################################################
# Gästebuch ADD Site
################################################################################
#if (!defined("ANTI_HACK")) { header("location: start.php"); exit; }
################################################################################
# Check BAD IP - IP's sperren
################################################################################
$umleitung = "http://www.tagesschau.de";
$badiptxt = "";
$badips = array();
if (file_exists("badip.list"))
{
$fd = fopen ("badip.list", "r");
while (!feof($fd))
{
$buffer = trim(chop(fgets($fd, 512)));
if (($buffer != "") && ($buffer[0] != '/'))
{
$badips[] = strtolower($buffer);
}
}
fclose ($fd);
}
foreach($badips as $badip)
{
if ($_SERVER["REMOTE_ADDR"] == $badip)
{
$badiptxt="<b>ACHTUNG: BAD IP - EINTRAG !!!</b>";
}
}
if ($badiptxt != "")
{
echo "<script>window.parent.location.href='".$umleitung."' </script>";
//header("Location: ".$umleitung);
exit;
}
################################################################################
### Globals off
################################################################################
if (isset ($HTTP_GET_VARS)) { $_ENV = &$HTTP_GET_VARS; }
if (isset ($_GET)) extract($_GET);
if (isset ($HTTP_POST_VARS)) { $_ENV = &$HTTP_POST_VARS; }
if (isset ($_POST)) extract($_POST);
# Codewort zur überprüfung
$opener = (md5('fein-music'));
# Übergebenes MD5 Codewort
if (!isset ($md5)) {header('Location: http://www.tagesschau.de'); exit;}
# Vergleich Codewort mit MD5 Übergabe
if ($opener == $md5)
{
setlocale(LC_TIME, 'de_DE@euro', 'de_DE', 'de', 'ge');
$tag = strftime("%A");
$heute = strftime("%d.%m.%Y");
$uhrzeit = date("G:i:s");
$datetime = $tag.", ".$heute." - ".$uhrzeit." Uhr";
$gb_year = date('Y');
$adminmail = "webmaster@fein-music.de";
$seperator = "<div align='right'><a style='color:#CC0000; text-decoration:none' title='NACH OBEN' href='#OBEN'>∆</a></div>\n".
"<hr>\n\n";
# Dateiinhalt auslesen
$datei = "fgb_".$gb_year.".dat";
$oldinhalt = file($datei) or die("Fehler beim Öffnen der Datei: ".$datei."!\n");
$zeilen = sizeof($oldinhalt);
# Neuen Beitrag erstellen
if ( $useremail != "") { $realname="<a href='mailto:".$useremail."'>".$realname."</a>"; }
else { $useremail = "Keine Angabe";}
$eintrag_neu = "<b>Geschrieben von:</b> ".$realname."<b><br>am:</b> ".$datetime."<br><b>IP:</b> ".$_SERVER['REMOTE_ADDR']."<br><br>".nl2br(stripslashes(trim($comments)))." ";
# Neuen Beitrag einfügen
$neuinhalt = "";
for ($i=0; $i<$zeilen; $i++)
{
$_ = $oldinhalt[$i];
$neuinhalt .= $_;
if (preg_match("=.*<p><!--begin--></p>.*=sU", $_))
{
$neuinhalt .= $eintrag_neu.$seperator;
}
}
# Datei neu schreiben mit nochmaliger Überprüfung Codewort/MD5
if ($opener == $md5)
{
$open = fopen($datei, "w") or die("Fehler beim Öffnen der Datei: ".$datei."!\n");
fputs($open, $neuinhalt);
fclose($open);
}
# eMail versenden
$from = $useremail;
$to = $adminmail;
$subject= "Neuer Eintrag im Gästebuch FEIN-Music";
$body = "
<html>
<font face=Verdana size=2 color=000080>
Ein neuer Beitrag wurde geschrieben.<br>
------------------------------------------------------------------<br>
".$datetime." / IP-Adresse: ".getenv("REMOTE_ADDR")."<br>
------------------------------------------------------------------<br>
".$eintrag_neu."
------------------------------------------------------------------<br>
<i>Webmaster<br>
www.fein-music.de</i><br>
<font size=1 color=black>
==========================================================<br>
Diese E-Mail wurde automatisch erstellt. Sie können nicht darauf antworten !<br>
==========================================================</font>
";
$header = "From: ".$from."\r\n";
$header.= "Content-type: text/html";
@mail($to, $subject, $body, $header);
#echo "<font face=verdana size=1 color=black><br>FROM: ".$from."<br>TO: ".$to."<br>BETREFF: ".$subject."<br><br></font>".$body."<hr class=hr>";
# Weiterleiten
header('Location: start.php?page=guests');
}
else
{
header('Location: http://www.tagesschau.de'); exit;
}
###############################################################################
# Ende - Post Gästebuch
###############################################################################
?>
Nur wenn ich die add_guest.php sperre bleiben die Einträge aus - logisch ?!?
Die eigentliche Eintragszeile: fputs($open, $neuinhalt); wird sogar noch mal extra geprüft.
Wie bekomme ich das Ding jetzt einigermaßen sicher gegen Spam ?
Hoffe es kann mir jemand helfen.
Wie funktioniert diese Spam-Bot -Kacke, wie kriegen die das immer wieder hin sich trotz diverser Sicherheitsabfragen einzutragen?
Thx@all
Kommentar