Pfandfinder schrieb:
gute idee, reicht da auch einfach die unixtime als session aus und dann in der .php vergleichen ?
Ich nehme an dein Formular renderst du auch direkt mit PHP, oder? Dann würde ich da einfach die aktuelle Zeit als Unixtimestamp reinpacken, ja. Session kann man machen, ich würde es einfach in ein Hiddenfield o.ä. packen.
Dann nach dem Abschicken (in einem ersten Schritt) einfach erstmal gar nix tun, außer in der Mail (die dir zugeschickt wird) den Abstand zwischen "gerendert" und "abgeschickt" in Sekunden mit ausgeben.
Wenn du das gleich noch machen willst, kannst du auch ein Formularfeld mit hinzufügen (gern auch mit "display: none" (du weißt ja schon, dass "deine" Bots das nicht ausfüllen) und dort dann via Javascript was reinschreiben (sowas unverfängliches wie "js enabled" oder so) und die Email auch um dieses Feld ergänzen.
Musst dich da bissel rantasten
Wenn du dann anhand des "Debuggings" herausgefunden hast, was den Spam kennzeichnet, kannst du zu Schritt 2 übergehen und Eingaben einfach verwerfen.
Beispiele: Bots schicken schneller als X Sekunden ab -> verwirf alles was schneller als X Sekunden ankommt (sofern menschlich nicht (sinnvoll) schaffbar).
Idealerweise reicht das (fürs erste) auch schon und du kannst den Javascript-Test direkt wieder ausbauen. Kampf gegen Bots ist halt immer bisschen wie Hase und Igel. ReCaptcha löst das Problem "nachhaltiger", da sollte man aber die anderen Punkte (bspw. auch Cookiebar, danke für den Hinweis
@savuti ) mit beachten.