How to prevent an influx of spam bots on our forum?

AI-generated summary

A moderator of a medium-sized forum seeks advice on preventing spam bots that post fake support phone numbers. The forum has over 10,000 users and experienced a significant spam attack. The moderator, GamersInternational, tried using a regex to filter phone numbers but found it also flagged error codes and fediverse handles. Akismet is not feasible due to funding constraints. awesomerobot shared a guide for general spam prevention and suggested a more specific regex to avoid false positives for shorter codes. GamersInternational confirmed the issue with the initial regex and provided an example of the false positives. awesomerobot proposed alternative regex patterns to better target the spam phone numbers without affecting legitimate content.

I’m a moderator of a medium-sized online forum with over 10,000 users. Last night, we had a serious spam attack with various bots posting fake support phone numbers for various airlines, travel companies and a few other companies.

All of these accounts seem to post phone numbers through a variety of different ways (all US ones, but they use various different characters instead of the typical dash to separate the numbers). I did see a post on here last night that filtered out phone numbers, but the problem is the fact that it would falsely flag error codes that appear on our service (which is crucial considering our main purpose is a support forum) and would also flag other things such as fediverse handles.

Additionally, things like Akismet seems out of our range considering the forum is operated by a registered LLC in the US, but we are purely funded by donations at the moment and paying for something like that seems a bit unfeasible.

We have an idea for a nuclear option, but I am strongly pushing against it at the moment given it would exclude some members of our userbase and I also think it would restrict access to support to some extent personally.

Thank you in advance!

This sort of spam has become very common lately, we have a guide for general spam prevention here:

In the replies there was a useful post about a regex that can be used to block or flag phone numbers and email addresses using the watched words feature

Yeah, that was the regex in particular that I tried, it unfortunately filtered some ActivityPub handles and error codes that we have on our service (which are typically displayed like 123-4567).

Ah I see, we can maybe come up with something more specific that will avoid shorter codes… perhaps:

\b\d{3}[-.\s]\d{3}[-.\s]\d{4}\b

This will catch formats like 1-800-123-4567, 123 456 7890

If it’s more like +1 123 456 7890, this might work better to specifically catch the +1

\+1[-.\s]\d{3}[-.\s]\d{3}[-.\s]\d{4}

Neither of these will get false positives for shorter codes like 123-4567