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
 
          
 Moderator
 Moderator 
							
						
Comment