Filtering out spam, beyond Re-captcha?

How to filter spam submissions in ChronoForms beyond reCAPTCHA.

Overview

The problem is that spam submissions often contain specific patterns like '.ru' email domains or 'http' links in form fields.
Implement a server-side check to detect these patterns and redirect suspected spam submissions to a separate email address for review, preventing them from reaching the main inbox.

Answered
ChronoForms v6
sq squiffed 04 Dec, 2020
We use CF6 to implement a pretty simple RMA form for our customers - just collects some address and product info and on validate it sends an e-mail to us and stores data in DB. There is a re-captcha implemented but we still get a fair amount of spam coming thru and was wondering what else I could do. Two things that most spam posts feature are either an e-mail field that ends in '.ru' or a web-link in comments field. It seems that maybe with clever use of validation and regex or something else, I could get rid of these without alerting the user. Wondering if anyone else has implemented something like this so I don't reinvent the wheel. Note that I'm not a web design pro - just a self-taught type so pretty easy to go over my head.

thanks!
sq squiffed 04 Dec, 2020
Answer
OK - I found a similar thread on not allowing submits from certain domains posted just a few days ago... so used php action to look for '.ru' and 'http' in some fields and then change the e-mail address where it gets sent if needed.

I can use that e-mail field as a basis for deleting a bunch of it out of the database periodically. Good enough for now.
ja jamesp100 06 Jun, 2021
Hi,
Can you post your solution here please as I have the same issue.
Thanks
James
sq squiffed 07 Jun, 2021
I can't get this to upload a screenshot, so will have to try verbiage:

On submit if Google Captcha test is passed, it sends e-mails to addresses the user has supplied and to 'GroupEmail@gmail.com'. Within the Google captcha I put the following PHP code. Typical spam either has a link in the textarea8 (testing for 'http') or is coming from .ru where we have no customers. So if it finds these, it sends to 'myOtherEmail@gmail.com' instead of to 'GroupEmail'. That way I can periodically review in case there's a valid submit, but the group doesn't get it. (So far thru 100's of spam submits, there has not been a valid one.) I can then use the 'myOtherEmail' to filter all this garbage out of the database if that's important to you. Code below:

if(strpos($this->data["tc_email"],".ru") !== false){
$this->data["rma_email"] = "myOtherEmail@gmail.com";
}
if(strpos($this->data["textarea8"],".ru") !== false){
$this->data["rma_email"] = "myOtherEmail@gmail.com";
}
if(strpos($this->data["textarea8"],"http") !== false){
$this->data["rma_email"] = "myOtherEmail@gmail.com";
}
This topic is locked and no more replies can be posted.