Spam-Schutz bei Kontaktformular?

Honeyflower

Well-known member
ID: 63326
L
24 April 2006
522
24
Hallo,

Kennt jemand ein Kontaktformular-Script mit Spam-Schutz?
Bei mir spielt immer jemand damit rum und verschickt sogar Mails mit BCC-Empfängern (geht eigentlich garnicht) und irgendeinem sinnlosen Text, z.B sowas:
Content-Transfer-Encoding: 7bit
Content-Type: text/plain

serrano (notably the ured am of rev lez)and jam n ib rico (notably the ured
iberic am of uijuelo). he

--ddd5355ebd57bd77bda5a1c63df8477c
Content-Transfer-Encoding: 7bit
Content-Type: text/plain

serrano (notably the ured am of rev lez)and jam n ib rico (notably the ured
iberic am of uijuelo). he

--ddd5355ebd57bd77bda5a1c63df8477c--
.
Würde es was bringen wenn man eine Turing-Nummer zwischenschaltet? Aber ich denk mal das die meisten SPammer das dann per Hand eintippen...
Ich hab das Kontaktformular erstmal deaktiviert.
 
ja das captcha meinte ich natürlich ;)
Bei dem Script kann der User seine email-adresse eingeben und den Text. Scheint aber immer der gleiche Spinner zu sein, jedenfalls ist die Email-Addy jedesmal ein Wort + Zahl + @meinedomain.de sowie ein total unsinniger kurzer Text...
 
ja das captcha meinte ich natürlich ;)
Bei dem Script kann der User seine email-adresse eingeben und den Text. Scheint aber immer der gleiche Spinner zu sein, jedenfalls ist die Email-Addy jedesmal ein Wort + Zahl + @meinedomain.de sowie ein total unsinniger kurzer Text...

das capcha bringt leider gar nichts, wenn er von hand schreibt. auch mit ner session-gespeicherten tan kommst du da nicht weit. was du auf jeden fall prüfen muss ist ob alles, was du im mailheader verwendest frei ist von umbrüchen.

eine beliebte übung ist es, wenn man direkt die absender-adresse injected.

absender-textfeld: ich@abc.de\nbcc: liste_von_emailadressen\n\nund schon wird losgespamt ...

da die adresse von mail direkt in den header geschrieben wird (from: mail@sonstwas) und im header auch alle weiteren parameter durch umbruch "\n" getrennt sind, kann man hier einfach mitteils zeilenumbruch den kompletten header übergeben und danach den spam-text.

als halbwegs sicherste methode also grundsätzlich folgendes benutzen:
PHP:
  list($mail,) = explode( "\n", $_POST['mail']."\n" );

paranoide version:
  list($mail,) = split( "\n|\r|\r\n|\n\r", $mail."\n" );

danach solltest du $mail selbstverständlich noch auf korrekte syntax prüfen.


HTH