views:

291

answers:

7

Hey all!

I got a problem at my blog. I got visits from kind bots who leave "nice" comments to my blog posts :(

I'm wondering if there is a smarter way to keep them out, besides using the captcha modules. My problem with the captcha modules is that I thinks they are anoying to the user :(

I don't know if it's any help to anyone but my site is in asp.net mvc beta.

+12  A: 

Have you thought about using this?

http://akismet.com/

From their FAQ

When a new comment, trackback, or pingback comes to your blog it is submitted to the Akismet web service which runs hundreds of tests on the comment and returns a thumbs up or thumbs down.

It's a really easy to use system, which I highly recommend.

jonnii
A: 

I think you have several options...

  1. Require registration to post comments - but thats more annoying than captcha, so probably not the best idea

  2. Examine the user-agent of the poster (see here) for something that looks genuine or exclude those which look suspect

  3. Use a nice Captcha. As annoying as they are, used properly they aren't that bad. It took me 7 attempts to sign up for a gmail the other day because i just couldnt read what it said. A nice captcha though isnt that bad really, kept it short and READABLE

Andrew Bullock
A: 

If the spam you are receiving is link-heavy you could assume any comment that contains >= 2 links is a spam comment and not post it to the blog unless the blog author approves them. This is what most comment-spam plugins do. I'm currently working on a blog software and I adopted this solution in the interim until I can integrate akismet fully.

Jared
+3  A: 

Have a CAPTCHA that is really simple. Perhaps make it always "orange"? I don't think anyone's done that before.

To anyone voting down this apparently silly idea: it is what Jeff Atwood (a co-creator of stackoverflow) does on his blog, and it seems to work...
Ned Batchelder
Yeah, I don't know why this answer was voted down. It's a legitimate answer, it obviously works (well, at least on Jeff's blog it works). And it's funny too. Guess the people that downvoted this either never read codinghorror.com or don't have a sense of humour.
Sandman
I used to do this. I made my own captcha image that read abc123. It never changed. One user actually commented on the fact it was always the same.
Andrew Hedges
With this sort of a solution, wouldn't it invite bots to target your site specifically? While an individual blog might not be large enough to warrant such attention from bot writers....couldn't large sites that are of particular interest to bot writers be exploited?
mezoid
+2  A: 

Akismet is definitely the #1 method I know of for limiting spam comments. Also nice to offload that to a 3rd party (at a reasonable price).. that way if client complains, just 'shift the blame'

Another option is to incorporate something like mod_security's spammer signature file. They have a list of keywords you can scan a comment for and place the message to be moderated if you got a match. Though if you had a message board that actually discussed topics that contain these keywords, you'll need a lot of moderators. :-)

Also may want to consider scanning IP's and matching them against SpamHaus or DCShield's block lists. We recently started this approach and it has done wonders.

Things that don't work: requiring registration, simple captcha's, user agent... these can be automated or defeated with cheap labor.

Adam
+6  A: 

I've had good luck with Honeypots and Hashes.

By making it difficult for robots to post successfully, you can let users post without registration, captchas, or false positives from akismet.

Ned Batchelder
+1 for this, the same approach has let every human message through our filters and blocked every automated spam (I keep records just to check my filters' efficiency)
Gareth
A former colleague had great success using honeypots
Ian Oxley
A: 

I made spam into someone else's problem by using Disqus to run my blog's comments. There has been no spam since switching, Disqus keeps on top of it.

DGentry