Finding balance between spam detection and automated account deletions

The forum has a lot of spam. On average, 150 spam posts per month.

A while ago I set up an automatic deletion of spam detection to not be bothered by the vast majority of those posts since even if the forum software automatically detects them, they would require manual intervention to be deleted.

Problem is that there are sometimes false positives, and legitimate users may have their accounts deleted. It’s rare, but it happens.

The majority of this issue comes from new users who probably write their first post in another software first (notepad for example), before copy-pasting their post into the forum.

The minimum typing duration for a first post is 3 seconds. If less than 3 seconds, the post is detected as spam.

I could lower this value, but then it would not trigger spam detection as accurately as it does right now.

Examples of what could be false positives:

These users quickly wrote or pasted a message. The post was automatically deleted, and they probably re-created an account to try again. It triggered again the spam detection, and their account was deleted once more.

This one looks suspicious as it feels like an AI-generated post (it’s more and more frequent[1]), but the content seems legit. Let’s assume it was a false positive.

If it was a legit post and the user just decided to write it in another document before pasting it into a topic… The user was detected as a spammer and deleted.

Since forums are not exactly popular in the 2020s, even if they remain a fantastic way to gather a community and share information efficiently, I’m very dissatisfied with false positives. New users are rare. I don’t want them coming in and having their accounts deleted; It’s the worst welcome it could be.

I’m not sure of having a captcha in the registration form, as I suspect most spam is not automated and the actual humans behind these accounts would just pass this barrier with no effort.

I don’t want to force (with technical permissions) new users to create their first post in a specific category like Introduce Yourself, as I think it would simply move the spam into this category.
I’d prefer to incite them to do so, and if a new user wants to post directly in Trading Post, let it be.

I’ve set up this banner on the forum. It’s only visible for newly registered users:

The idea is that a new and legitimate user, interested in the forum and its content, will be incited to write their first post manually and in a specific category.
Spammers may overlook the message and paste spam right away in a random category.

I’m not sure if it’s the best way to handle this, and if you have better ideas, I’m all ears :ear:


  1. ↩︎

9 Likes

Yeah, the post about uk meets is almost certainly a real person as the exact same post was made on the unicycle Reddit and i recommended they ask here

1 Like

Is it possible to change the default ‘type here’ text in the empty text box for a post or reply (eg see below from my phone) to add on a separate line (in bold?) something like ‘Please ensure you spend at least 3 seconds here before posting your message to avoid being mistaken for a bot’.

1 Like

Totally possible, yes. I’m not sure even real people read this placeholder, which disappears on the first typed letter. :thinking:

2 Likes

How about only delete the suspect post, but not immediately the user account? If they continue to spam, the account could still be deleted. Don’t know if this could be automated - say, after the third spam incident in a given time frame, the account will be deleted.

Oh, by the way, have you already heard about that handy heater that drains virtually no electricity but is able to heat an entire unicycle garage in no time?
[Duck and run]

2 Likes

Yeah, that’s a good idea. I may have gone a bit nuclear with the auto account deletion. I believe that if a new user has a deleted post and never posts again, the account will automatically purged after a while. I need to double-check this and then I’ll update my script to make it more gentle.

Thanks for the suggestion :+1:

I don’t get it :sob:

1 Like

Yes, that’s probably true - and @Wheelou has suggested a better idea. However if your new animated emojis work in that box (they don’t seem to be working for me today), maybe they could be used to grab attention…

Type here. Use Markdown, BBCode, or HTML to format. Drag or paste images.

:man_cartwheeling:f-spin,flip::uni:f-wobble: Please take more than 3 seconds to edit your message or the spam filter will trigger a UPD (User Post Deletion) :woman_cartwheeling:f-spin,flip::uni:f-wobble:

3 Likes

Image-based emojis don’t work for input placeholders, alas :stuck_out_tongue:

I’ve temporarily disabled the feature because a Discourse update broke it :sob:

3 Likes

It’s an allusion to one of those annoying ads (with the typical AI voice overlay) that I have to endure almost every time I watch a video on Youtube… I consider that spam in one of its purest forms.

2 Likes

I very rarely experience ads on Youtube, almost forgetting that it’s a thing. I use AdGuard AdBlocker (also the desktop app) on my computer, and Youtube ReVanced on mobile.

2 Likes

Might give that a try, thanks!

Which would explain the copy/paste issue that @Canapin mentioned.

1 Like

“This is the heater the government doesn’t want you to know about” :laughing:

2 Likes

Exactly! And most people of [country of your choice] will have it in a short time.

I’ve contacted the person and I believe they came back :partying_face:

1 Like

I’ve updated my script.

What it does now:

  • If a new user’s first post is detected as spam by Akismet (because of the post’s content) or Discourse (most of the time because of a very short typing time, less than 3 seconds) the post is rejected, but the user isn’t deleted or silenced. It will allow legit users to contact an admin.
    Since a recent Discourse update, new users with no activity are invisible to other users. Thus, these users basically don’t exist for the community or search engines – user profiles aren’t referenced anyway – and are automatically deleted after a while.

  • If a user is either detected as spam by Akismet (because of the content of the profile) or by Discourse (because they filled in their profile without reading at least 1 post), then the account is automatically deleted. I think the risk of false positives on this is close to non-existent.

I think this modification along with the new user “friendly warning” banner will be enough :slight_smile:

Thanks all for your suggestions :+1:

5 Likes