Kontaktformular Spamschutz
Adam_77
- php
Hallo,
ich wende mich an euch, da ich an einem Problem sitze und selber nicht weiter komme und im Netz keine gute Seite mit infos finde.
Ich habe ein Kontaktformular, dass Opfer von Spamattacken geworden ist indem jemand im Feld Emailadresse ganz viele EmailAdressen eingegeben hat.
Also würde ich so etwas gerne auschließen. Aber wie? Ich nehme an, dass ich testen muss ob ein Komma oder Semikolon im Feld eingegeben wurde. Also dass jemand halt mehrere E-mail-Adressen durch Komma und Semikolon getrennt eingibt.
??
Im Augenblick teste ich nur so ob die Mail richtig ist
(!ereg("^.+@.+\..+$", $_POST['Email'])
kann man da irgendwie einbauchen, dass nur EINE Emailadresse dort stehen darf??
Kennt jemand eine gute Seite, die über php-code verfügt zum Spam Schutz?..ohne captcha.
Vielen Dank für eure Hilfe.
Adam
Hi,
Ich habe ein Kontaktformular, dass Opfer von Spamattacken geworden ist indem jemand im Feld Emailadresse ganz viele EmailAdressen eingegeben hat.
Also würde ich so etwas gerne auschließen. Aber wie? Ich nehme an, dass ich testen muss ob ein Komma oder Semikolon im Feld eingegeben wurde. Also dass jemand halt mehrere E-mail-Adressen durch Komma und Semikolon getrennt eingibt.
Im Augenblick teste ich nur so ob die Mail richtig ist
(!ereg("^.+@.+\..+$", $_POST['Email'])
Naja, damit testest Du nur, daß die E-Mail-Adresse nicht komplett gegen alle Regeln verstößt.
Die ereg-Funktionen solltest Du dafür aber nicht mehr nutzen, die sind schon auf deprecated gesetzt und werden in einer der nächsten Versionen aus PHP entsorgt.
kann man da irgendwie einbauchen,
Das geht meist durch Fressen ;-)
dass nur EINE Emailadresse dort stehen darf??
Man kann das vielleicht in einem Ausdruck unterbringen. Es dürfte aber leichter sein, eine zweite Prüfung vorzunehmen, mit einer negierten Zeichenklasse, die alle Trennzeichen zwischen E-Mail-Adressen enthält (Komma, Semikolon, Leerzeichen, Tab, ...)
cu,
Andreas
hallo
Vielen Dank für eure Antworten..
Also es stimmt, ich müsste die Mail an den user rausnehmen.
Das wäre das beste.
ich habe die Befürchtung, dass dies vom Besitzer der Seite ungern durchgeführt wird.
Für den Fall, dass es drin bleibt wollte ich den code verbessern und stehe php-mäßig auf dem Schlauch.
Mit welchem Ausdruck könnte ich denn testen, ob in der Variable $email entweder ein Semikolon oder ein Komma oder ein leerzeichen oder ein Tab enthalten ist?
Ich hoffe, ihr helft mir noch mal
vielen Dank
adam
Thema erledigt.. hier gibt es noch eine Funktion, die mir weitergeholfen hat.
vielen Dank an euch für eure Informationen!
lg Adam
Pasten vergessen.. hier von mir kopierte Funktion
http://www.zudila.ch/scripte/php_mail.php
Hi!
Pasten vergessen.. hier von mir kopierte Funktion
http://www.zudila.ch/scripte/php_mail.php
Mit einer aktuelen PHP-Version kannst du auch die Filterfunktionen bemühen. Es gibt da nämlich eine Validation-Funktion für Email-Adressen.
Lo!
Was genau ist dann passiert? Ein Kontaktformular schickt üblicherweise genau dir eine Mail und du antwortest dann der Adresse die da angegeben ist.
Zu Spamschutz find ich bei Google unter "kontaktformular spamschutz" schon ne ganze Menge.
Die einfachste Prüfung wäre die Länge zu beschränken und keine Leerzeichen und Kommas usw. zulassen.
Ich weiß nicht wo dein Kontaktformular eingebaut ist, aber wenn ich auf einer Seite einen Hinweis geben will, z.B. dass irgendwas nicht funktioniert oder sonstige Fehler entdecke, da will ich nicht unbedingt gleich meine Mailadresse angeben. Entweder der Betreiber freut sich über meinen Hinweis, oder ich lass es bleiben. Daher weiß ich nicht ob dir Prüfung auf eine gültige Adresse überhaupt so eine sinnvolle Idee ist.
Hi,
Ich habe ein Kontaktformular, dass Opfer von Spamattacken geworden ist indem jemand im Feld Emailadresse ganz viele EmailAdressen eingegeben hat.
heißt das, dein Script sendet Mails an eine vom Benutzer eingegebene Adresse? Das ist an sich schon problematisch! Denn auch wenn sichergestellt ist, dass nur *eine* Mailadresse eingetragen werden kann (oder nur eine beachtet wird), kann jemand das Formular missbrauchen, um anonym eine Nachricht an einen beliebigen Empfänger zu senden.
Die Tatsache, dass es in deinem Fall auch mit mehreren Empfängern funktioniert, multipliziert das Problem nur; der Ansatzpunkt muss aber die Tatsache an sich sein: Niemals automatisch Mails an unbekannte oder unverifizierte Adressen senden!
Kennt jemand eine gute Seite, die über php-code verfügt zum Spam Schutz?..ohne captcha.
Nicht für deinen speziellen Fall - du musst am Grundprinzip etwas ändern.
Der Nutzer des Kontaktformulars kann gern seine eigene Mailadresse eingeben, damit du ihm antworten kannst.
So long,
Martin