Spamfalle für ein Kontaktformular...
corner
- php
0 Ingo Turski0 Powl0 Froschpopo
Hallo zusammen!
Ich würde gern erfahren, wie wirkungsvoll der Schutz gegen automatischen Spamversand über ein Kontaktformular ist, wenn man ein nur optisch (z.B. durch ein <div>) verdecktes Textfeld einfügt, das auf jeden Fall leer bleiben muss. Wird es trotzdem automatisch ausgefüllt, unterbleibt der Mailversand.
Gibt es möglicherweise noch andere Script-Alternativen, um dies zu verhindern?
Vielleicht hat auch jemand einen Tipp für ein Script, was den erneuten Versand des Formulars nach Betätigung des "Zurück"-Buttons im Browser unterbinden kann. Würde mich sehr freuen...
Vielen Dank für die Hilfe
corner
Hi,
Ich würde gern erfahren, wie wirkungsvoll der Schutz gegen automatischen Spamversand über ein Kontaktformular ist, wenn man ein nur optisch (z.B. durch ein <div>) verdecktes Textfeld einfügt, das auf jeden Fall leer bleiben muss.
Ein zusätzliches DIV wäre unnötig - display:none und hierin ein Hinweis für User ohne CSS reicht völlig. Ob die Spam-Bots darauf reinfallen hängt u.a. davon ab, an welcher Stelle im Formular das Feld ist und wie es benannt ist. 100%ig sicher ist das nie.
Vielleicht hat auch jemand einen Tipp für ein Script, was den erneuten Versand des Formulars nach Betätigung des "Zurück"-Buttons im Browser unterbinden kann. Würde mich sehr freuen...
Ich speichere einfach die zuletzt verschickten Daten und vergleiche sie.
freundliche Grüße
Ingo
Hallo,
Ich würde gern erfahren, wie wirkungsvoll der Schutz gegen automatischen Spamversand über ein Kontaktformular ist, wenn man ein nur optisch (z.B. durch ein <div>) verdecktes Textfeld einfügt, das auf jeden Fall leer bleiben muss. Wird es trotzdem automatisch ausgefüllt, unterbleibt der Mailversand.
Das scheint bisher zu helfen.
Gibt es möglicherweise noch andere Script-Alternativen, um dies zu verhindern?
Mit Sicherheit. Überprüfen der Eingaben auf Plausibilität. Ein @ im Namen ist zumindest ungewöhnlich. Mehr als wenige URIs vielleicht auch ein Hinweis auf Spam. Dann gäbe es noch Captchas, die ich aber nicht besonders mag, da sie z.T. auch Menschen ausschließen. Man könnte auch eine leichte Aufgabe stellen, z.B. ein Bild eines Autos und man soll dann den dargestellten Gegenstand benennen oder eine Rechenaufgabe oder ähnliches. Irgendetwas, das ein Mensch leicht zu lösen vermag, ein Bot aber gar nicht.
Oder andersherum, wenn das Formular in weniger als 10 Sekunden ausgefüllt wurde, sieht das nicht nach menschlicher Eingabe aus, oder?
Vielleicht hat auch jemand einen Tipp für ein Script, was den erneuten Versand des Formulars nach Betätigung des "Zurück"-Buttons im Browser unterbinden kann. Würde mich sehr freuen...
Davon würde ich abraten, sofern es überhaupt zu realisieren wäre. Besser IMO wäre es zu überprüfen, ob der besagte Text schon einmal versendet worden ist und in dem Fall eine entsprechende Meldung auszugeben, oder nach erfolgtem Versand die Sender-IP für eine Weile zu sperren.
Man könnte auch eine Session anlegen, um zu überprüfen ob der betreffende User schon einmal innerhalb von x Minuten gepostet hat.
Generell denke ich, eine Kombination verschiedener Ansätze wird den größtmöglichen Erfolg hervorrufen.
netten Tag
^da Powl
Oder andersherum, wenn das Formular in weniger als 10 Sekunden ausgefüllt wurde, sieht das nicht nach menschlicher Eingabe aus, oder?
»»
Wie kann ich das denn herausfinden?!
... oder nach erfolgtem Versand die Sender-IP für eine Weile zu sperren.
Und wie lässt sich so etwas realisieren?...
Nochmal vielen Dank für die Mühe
Hallo,
Oder andersherum, wenn das Formular in weniger als 10 Sekunden ausgefüllt wurde, sieht das nicht nach menschlicher Eingabe aus, oder?
»»Wie kann ich das denn herausfinden?!
Wenn das Skript aufgerufen wird das Datum und die genaue Zeit in einer Variablen speichern, sowie die zughörige IP und entsprechend übergeben.
Wenn mittls Post Daten an das Skript versandt werden die IP vergleichen mit den gepspeicherten und den zugehörigen Zeitwert mit dem des Posts vergleichen. Ist die Differenz kleiner als 10s. dann wohl wahscheinlich ein Bot am Werk.
... oder nach erfolgtem Versand die Sender-IP für eine Weile zu sperren.
analog wie oben.
Und wie lässt sich so etwas realisieren?...
Mit einer serverseitigen Skriptsprache. Welche stehen Dir zur Verfügung. Welche Grundkenntnisse bringst Du mit? Eine Herangehensweise wäre sich einige Skripte zu besorgen, die eine Floodsperre eingebaut haben und versuchen den Quelltext zu verstehen und nachzuvollziehen, wie das funktioniert. Dann kann man etwas ähnliches recht einfach herauskondensieren. Oder man beginnt eine der entsprechenden Skriptsprachen zu lernen.
Oder man fängt schon mal an zu coden und fragt dann bei ganz konkreten Problemen hier um Rat.
Der Wege gibt es viele. Jedenfalls läßt sich Deine obige Frage nicht so pauschal beantworten.
Es wäre auch möglich ein fertiges Skript einzusetzten. Skriptarchive gibt es ja diverse. Persönlich finde ich diese Idee aber nicht bsonders ansprechend- Man lernt selbst nicht und müsste ein Skript einsetzten, ohne zu wissen was da eigentlich passiert.
Andererseits muss auch nicht jeder das Rad enu erfinden.
Den Quelltext sollte man aber schon lesen und soweit verstehen, daß man nachvollziehen kann, was das Skript eigentlich macht.
Nochmal vielen Dank für die Mühe
Kein Problem, gerne. Ich denke Deine Mühe fängt gerade erst an ;)
netten Tag und viel Erfolg
^da Powl
Mit Sessions!
Beim betreten der Seite wird eine Session für den User angelegt, deren Zeitstempel bei jedem Klick aktualisiert und nach einer festgelegten Zeit ohne Aktion gelöscht oder neu angelegt wird.
In der Session kannst du u.a. speichern, ob und wieviele Postings der User schon getätigt hat. Deine Seite darf man dann nur noch mit einer gültigen Session betreten, was aber die meisten Betreiber so machen.
Damit ein Bot das umgehen kann, muss er erstmal den Session-Cookie finden und löschen.
Ein böswilliger USer ohne Bot darf jedesmal in die Browser-Einstellung wechseln und ihn per Hand entfernen. Damit schließt man schonmal einen Großteil der böswilligen Spammer aus.
Eine Dunkelziffer intelligenter Bots und User verbleibt aber noch. Denen könnte man dann z.B. noch eine kleine grafische Verifizierung vor die Nase setzen. Dann müssen sie jedesmal einen zufällig generierten code von einem Image abtippen.
Zusätzlich dann noch Satzteile filtern.
Einige Beispiele:
\s[ä|a]t\s
@
.com
.de
www
w\s(.*)w
usw.