Maxi: Spam durch Formulare - Ist das normal?

Beitrag lesen

Hallo liebe SELFHTML-Gemeinde!

Seit einiger Zeit habe ich eine Webseite mit einem Formular über das man mir Nachrichten zuschicken kann. Soweit ist alles normal und alles funktioniert.

Doch inzwischen bekomme ich bis zu 100 Emails pro Tag mit meinem Formular als Absender. Die Formularfelder sind immer mit mehr oder weniger sinnvollen englischen Wörtern ausgefüllt - enthalten jedoch nie Links.

Ist das normaler Spam? Ich meine ohne Link ist es ja nicht einmal Werbung und bringt somit doch niemandem etwas. Kann man sein Formular irgendwie vor diesem Spam-Mißbrauch schützen?

Danke für jede Antwort!

Mein Formular-Code in HTML:
----------------------------

<form action="mail.cgi" method="post">

<table border="0" cellspacing="0">
<tr><td>Name</td><td><input name="Name" size="30" value="" tabindex="1"></td></tr>
<tr><td>Email</td><td><input name="Email" size="30" value="" tabindex="2"></td></tr>
<tr valign="top"><td>Text</td><td><textarea name="Text" rows="5" cols="30" tabindex="3"></textarea></td></tr>
<tr><td></td><td><input type="Submit" name="OK" value="Abschicken !" tabindex="4"></td></tr>
</table></form>

Mein CGI-Code:
---------------------------------

#!/usr/bin/perl

--------------------------------------

- Formmailer v5.00 von MeineWebseite -

- Version vom 02.11.2005             -

--------------------------------------

print "Content-type:text/html\n\n";

Parsen der Forum-Daten

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
    ($name, $value) = split(/=/, $pair);
    $value =~ tr/+/ /;
    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    $FORM{$name} = $value;
}

Ort des Email-Porgramms

$mailprog = '/usr/sbin/sendmail';

Eigene Email-Adresse

Hierhin wird das Formular geschickt!

$recipient = 'meine@email.de';

Dies öffnet den Output Stream und leitet ihn direkt

zum Sendmail Programm. Sollte es dieses nicht geben

gibt es eine DieNice Fehlermeldung.

if ($FORM{'Email'} eq "") { dienice("Bitte tragen Sie Ihre Email-Kontaktadresse ein! "); }

open (MAIL, "|$mailprog -t") or dienice("Can't access
$mailprog!\n");

Empfängername und Absendername

print MAIL "To: $recipient\n";
print MAIL "From: Mein Formular 5.00 \n";

Wenn die Felder Email und Name vorhanden sind

werden diese für die Reply-to Funktion benutzt

print MAIL "Reply-to: $FORM{'Email'} ($FORM{'Name'})\n";

Die Betreffzeile der Formular-Email. Alles, was hinter

\n\n steht, wird in die Email selbst gedruckt

print MAIL "Subject: Mein Formular\n\n";

Nun wird die Email erstellt

print MAIL "EMAIL von meinem Formular \n";
print MAIL "=============================================== \n";
print MAIL "Name............................: $FORM{'Name'}\n";
print MAIL "Email Adresse.......................: $FORM{'Email'}\n";
print MAIL "Sonstiges......................: $FORM{'Text'}\n";

Schließen des Input Streams

close(MAIL);

Feedback nach erfolgreichem Absenden des Formulars

print <<EndHTML;
<h2>Vielen Dank!</h2>
Ihre Nachricht wurde erfolgreich übermittelt. Über diesen
Link gelangen Sie zurück auf die Startseite:<br><br>
<a href="http://www.MeineWebseite.de">Zur Startseite...</a>
</body></html>
EndHTML

Die DieNice Meldung bei Fehlern

sub dienice {
    my($errmsg) = @_;
    print "<h2>Übertragung NICHT erfolgreich!</h2>\n";
    print "$errmsg<p>\n";
    print "</body></html>\n";
    exit;
}