XaraX: Kontaktformular absichern

Beitrag lesen

Hallo Maresa,

auf einer Website verwende ich ein Kontaktformular, welches mittels PHP verarbeitet wird. Das Ergebnis wird per PHP mail() an einen Empfänger versendet.

Nun rief mich letztens mein Provider an und meinte, dass sie das Formular vorübergehend aus dem Netz nehmen mussten, da es jemand gefloodes hat... Es wurden 60.000 Mails über das Formular verschickt.

Technisch ist soetwas ja ganz einfach... einfach in einer Schleife die PHP-Datei des Kontaktformulars requesten und die entsprechenden Parameter mitposten.

Wie kann ich soetwas verhindern. Ich meine mal etwas mit einer Challenge, welche einer Session-ID entspricht und in einem Hidde-Field übermittelt wird, gehört zu haben. Der genaue Ablauf ist mir allerdings nicht klar.

Wer kann mit mit einem Lösungsansatz weiterhelfen?

darüber gab es kürzlich eine Diskussion.
Aber bei dieser Form von Attacke ist das einfache Speichern der IP-Adresse ausreichend:

/docroot
    |
    |-/ip_verzeichnis
    |
    `-kontakt.php

  
<?php  
/* kontakt.php */  
clearstatcache();  
$c=count($d=scandir('ip_verzeichnis'));  
$t=time()-120; # hier die Zeit in Sekunden einstellen  
for($i=0;$i<$c;$i++){  
 $a=stat('ip_verzeichnis/'.$d[$i]);  
 if($a[9]<$t){  
  unlink('ip_verzeichnis/'.$d[$i]);  
  unset($d[$i]);  
 }  
}  
if(in_array($_SERVER['REMOTE_ADDR'],$d))  
 die('Von Ihrer IP-Adresse wurde in den letzten zwei Minuten bereits eine Nachricht versendet.');  
  
touch('ip_verzeichnis/'.$_SERVER['REMOTE_ADDR']);  
  
// kontaktformularverarbeitung und Mail senden  
?>  

Gruß aus Berlin!
eddi

--
Wer Rechtschreibfehler findet, darf sie behalten.