MyBB Community Forums

Full Version: Post based Anti-spam
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Feature Suggestion/Enhancement: Post-based Anti-spam system

This would be a system that would check through posts to determine if they were made by a spammer or not. And if the post was determined to be potentially spam it would be either be deleted/not saved to the database, invisible until validated or just made hidden by default.


Expected functionality

This would allow admins to choose which groups were subject to the check. (So they could set certain trusted groups, like mods, so be ignored by the check.) They could also set certain groups to have a lower tolerance for certain behaviours (so this way if a new member joined the system might weigh their posts harsher to stop spam from newly created accounts). And which forums to apply an even further weight to (so this way if they noticed one section was getting more spam than another they could make the system stricter there.)

Admins would then set what action to take based on the point value a post earned. So for example if the post got 7 points it would be posted, but flagged for review. If that post got 10 points it'd be invisible to all but staff. Or if it got 15 then it'd just be rejected (never actually entering the database).

When it came time for the actual check, this system would:
- cross reference the IP of the poster with spamhaus and/or other anti-spam databases.
- check the language of the post (at least see if it matches the board's default language... with the option to disable this check for multi-lingual boards of course).
- check the number of urls (especially ones that were identical) and whether they were complex type (url= or just url).
- check the contents of posts (keywords in urls and/or words in the post) against a list of keywords (specified by the admin).

Each of these would add up to a point value to be used in the above mentioned check to see if a post was considered spam or not. (And the user could alter how much each was worth. So if they wanted to really heavily weight keyword checking they could.)

It would also be good to have the option to whitelist certain domains so that even if they did have a point value within actionable range that it'd be allowed to go through anyway. 


Finally logs (with option to clear them) would be taken of each post acted upon to show the score of the post (so where it earned it's points), what the post contained, details of the poster (IP, account name/id, etc...)

Essentially like ZiNgA BuRgA's Spamalyzer plugin with a few tweaks and modifications. 



Any additional notes

Ideally this could also hook into the alerts system to notify admins (if the option were selected/enabled) to let them know when a post needed reviewing.
I'm just going to mention that some support for this idea was listed under this topic. 

I'd like to see something like this implemented for MyBB 2.0 as another option to fight spam would definitely be useful for admins.
Sorry, I seem to have missed this until now.

My plan for 2.0 is to retain the current features (NoCaptcha, timed registrations, StopForumSpam, etc.). I am also hoping to add things that have been proven to be quite useful as plugins (e.g.: no links in posts/signatures/PMs until a certain post count is hit, with the ability to make posts with links unapproved until moderators approve them). I would also like to add a system very much like Spamalyzer with weighting based word block lists to block or unapproved posts which contain too many blocked words.

I'd also like to make the checker dos StopForumSpam quite generic so that alternatives can be dropped in either replacing SFS or adding to it with a single PHP class. That would allow future enhancement by accessing other systems like Akismet (which causes a lot of false positives at the minute), etc.
I think I'll probably develop a plugin much like this for 2.0 (and maybe 1.8 if I set aside the time). So even if it's not in the core, expect something like this to exist. Smile