I\'m trying to work out a good way to manage user submitted content and create a
ID: 651032 • Letter: I
Question
I'm trying to work out a good way to manage user submitted content and create a method to determine when spammed/poor content should be hidden.
The aim is to create comment voting similar to youtubes like/dislike comments and if the score is good show the comments, else they're invisible.
Approach
My thought is to do this via the comments table, you could create two columns rateup, ratedown.
For each rate up the comment gets the rateup colulmn is: rateup = rateup + 1
and the same for the ratedown: ratedown = ratedown + 1
You can then put a clause into your database query to only select comments if their rateup ratio is greater than a number, say -5:
WHERE (rateup - ratedown) > -5
but this would need a lot of voting up and down if a user posts many spam/poor content posts over the site?
To strengthen the approach I could add the same two columns to the user table and also update these columns to give an overlal view of the users combined content submission ratio and then display comments like so:
WHERE ((comment.rateup - comment.ratedown) > -5 ) && ((user.rateup - user.ratedown) > -5 )
Issues
Would this approach lead to instances of users creating mass fake accounts to attack good users and ruin their reputation?
What other methods could I use to help hide spammed/poor content without moderators having to manually go through everything?
Explanation / Answer
I'd recommend using a multi-step process to reduce the ability to spam.
First, require registration to submit content. In the registration process use CAPTCHA or another similar (but less intrusive) process to block auto-spam scripts along with email response verification. This will prevent most automated attempts and slow down a lot of manual or semi-manual spamming.
Also, record IP addresses. You can use this to compare against known spamming proxies and to catch multiple account creation. I wouldn't flag or ban on this basis alone but put such accounts on a moderator monitoring list.
Next, use a content grader algorithm to watch for common spammer techniques ("Great Post!!!"), certain keywords related to certain products, common curse words and for the insertion of links from sites other than recognized ones that you want to white list (Wikipedia, CNN, etc.). Flag offending content for further examination.
You can also use a participation scoring system like Stack Exchange uses. Add features as users participate. Spammers generally won't participate in a site but will move on to easier targets.
After that, use a user spam scoring system to allow users to flag inappropriate content. Don't act on this alone but put flagged content on a moderator list for further action.