Spamschutz für Kontaktformular

rene76

Mitglied
Hallo

Ich habe auf meiner Homepage bis jetzt problemlos ein ganz einfaches Kontaktformular mit PHP betrieben. Seit ein paar Tagen wird das Kontaktformular mit Spam überflutet.

Es bleibt mir wohl nichts anderes übrig, als ein Spamschutz einzubauen. Hat da jemand einen guten Tipp oder eine gute Adresse?

Mein Formular sieht zur Zeit so aus:

CODE <form name="Kontaktformular" method="post" action="datei.php">
<p class="content"><b>Sende mir eine Mitteilung:</b></p>
<p><span class="content">Name<br>
<input name="Absender" type="text" id="Absender" size="30">
<br>
<br>
eMail<br>
<input name="email" type="text" id="email" size="30">
<br>
<br>
Mitteilung<br>
<textarea name="Text" cols="40" rows="5" id="Text"></textarea>
<input name="subject" type="hidden" value="Kontaktformular ">




CODE <?php
$admin = "hans@muster.ch";
$subject = "$subject von $email\n\n";
$message = "Nachricht fuer $admin von $email:\n\n";

while(list($name,$value)=each($HTTP_POST_VARS)) {
$message.="$name: $value\n\n";
}

mail($admin,$subject,$message,"From: $email");

?>

 
Baue am besten eine Abfrage ein, inder der User eine Ziffern / Zahlenkombination eingeben muss, die in einem Bild steht.
Nur bei korrekter Eingabe wird die E-Mail versendet.

Der Vorteil ist, dass die Spamrobots das Bild nicht lesen können, sodass du geschützt bist.

CODE $HTTP_POST_VARS)



Welche PHP-Version verwendest du?
register_globals sollte auf "deaktiviert" sein! Das ist viel sicherer.
 
an so etwas habe ich auch schon gedacht. hast du einen link dazu?

php-version ist 4.3.11

gruss rene76
 
Du brauchst dafür mind. PHP-Version 4.1.0. Das ist bei dir der Fall.

Du musst schauen, ob register_globals auf on oder off ist. Dazu legst du eine PHP-Datei an.

CODE <?php
phpinfo();
?>


Da suchst du nach "register_globals".

Dann schaust du, ob es auf on oder off steht.
 
Bei ON werden GET Variablen autom. in Skripten verfügbar gemacht:

xxx.php?var=inhalt

-> in Scripten wird dann die Variable $var vorhanden sein.

Wenn auf OFF wird die Variable nur über $_GET['var'] erreichbar sein, wodurch es schwieriger wird, fremde Variablen in den Code einzuschleusen.

Grüsse
 
Das kannst du sicher in deiner .htaccess - Datei übersteuern. Das sollte eigentlich immer möglich sein.
 
Also das mit dem "register_globals" sollte kein Problem sein.

Hat jemand ein Link zu einem Script mit der Zahlen- / Buchstabenabfrage als Bild? Oder wie Patrick- geschrieben hat: "Baue am besten eine Abfrage ein, inder der User eine Ziffern / Zahlenkombination eingeben muss, die in einem Bild steht.
Nur bei korrekter Eingabe wird die E-Mail versendet."

gruss rene76
 
hmm ein bekannter von mir hat eine ähnliches problem.
jedoch benutzte er ein Perl Script

Das Hauptproblem ist aber nicht das zusagen der Admin darüber haufenweise Mails bekommt, sondern, man könnte über das Feld Absender gleich noch ein Bcc anhängen und damit dann die Mails an viele verschiedene Adresse gleichzeitig senden.

darum solltest du auch den Inhalt der Variable $email genau prüfen ob dort nur eine Emailadresse drin steht !!!!

Meine Idee für die Absicherung wäre eine einfache Session.
auf der formularseite wird eine Session erzeugt, und ein WErt darin gespeichert, dieser wird vor dem Absenden der Daten überprüft und danach die Session gelöscht.

damit ist den user dann nicht mehr möglich mehrfach auf dem Submit Button zu klicken, und auch eine Nutzung des Scriptes von Außen sollte damit unterbunden werden.

denn bei meinem Bekannten war es so, das die Zugriffe mit ständig wechselnden IP Adressen wahrscheinlich von Außen kamen ?
denn wenn man manuell das Formular abschickte, erschien in den Logfiles die URL des Formulares als Referer.
bei diesen Fakemails war dort als Referer immer nur die Startseite obwohl es da keine Verbindung zu dem Script gibt...
 
Hallo

Mich würde es noch interessieren, wie das Problem schlussendlich gelöst wurde. Ich hatte zum Glück noch keine solche Attacke, will mich aber trotzdem dagegen wapnen.

Grüsse

 
Gegen die Robots kann man sich wehren, aber wenn am anderen Ende realle Personen sitzen und die ganze Zeit das Kontaktformular zuspammen, gibt es keine Schutzmöglichkeit.

Du kannst die IP für eine bestimmte Zeit sperren, doch der Spammer kann die IP wechseln. Was ist wenn normale User über einen Proxy surfen müssen und du die IP sperrst, da schon jemand eine Nachricht geschrieben hat? Ein anderer, der den gleichen Proxy benutzt, kann dir keine Mails schreiben.
Dann muss du doch deine Mailadresse veröffentlichen...
 
Danke für den Input.

Das mit der IP find ich noch gut. Wird die IP für lediglich 1 Minute gesperrt, dann ist das schon nervend für jemand, der da was "böses" will.

Greez
 
QUOTE (pippolino @ So 25.9.2005, 14:28)[...]
Das mit der IP find ich noch gut. Wird die IP für lediglich 1 Minute gesperrt, dann ist das schon nervend für jemand, der da was "böses" will.
[...]

Nö, wäre es nicht, wozu kann man Programme schreiben ;-)


MfG Sascha Ahlers
 
QUOTE (pippolino @ So 25.9.2005, 15:03)Und wie ist denn Deine Lösung?

Back to the roots! -> E-Mail ;-)

Ansonsten hilft nur eine Kontroll-Kode innerhalb einer Grafik, ohne das diese irgendwelche Rückschlüsse darauf im HTML-Quelltext mit einer Überprüfung der E-Mail-Adresse via Script und DNS Eintrag (MX-Record).
Dies ist aber nicht gerade förderlich für die Barriefreiheit, von daher erachte ich eine einfache E-Mail-Adresse am sinnvollsten, vorausgesetzt natürlich, dass der Server entsprechende SPAM-Filter hat.



MfG Sascha Ahlers
 
Zurück
Oben