Question: I've a website where I'm providing email encryption to users and I'm trying to figure out if there's a way to detect **if a user is human or a bot**.
I've been digging into **$\_SESSION** in php but it's easy to bypass, I'm also not interested in **captcha**, **useragent** or **login** solutions, any idea of what I need ?

There are other questions very similar to this one in SO but I couldn't find any straight answer...

Any help will be very welcome, thank you all !

Answer: 
My favorite way is presenting the "user" with a picture of a cat or a dog and asking, "Is this a cat or a dog?" No human ever gets that wrong; the computer gets it right perhaps 60% of the time (so you have to run it several times). There's a [project](http://research.microsoft.com/en-us/um/redmond/projects/asirra/) that will give you bunches of pictures of cats and dogs -- plus, all the animals are available for adoption so if the user likes the pet, he can have it.

It's a Microsoft corporate project, which puts me in a state of cognitive dissonance, as if I found out that Harry Reid likes zydeco music or that George Bush smokes pot. Oh, wait...
I suggest getting the Growmap Anti Spambot Wordpress plugin and seeing what code you can borrow from it or just using the same technique. I've found this plugin to be very effective for curtailing automated spam on my WordPress sites and I've started adapting the same technique for my ASP.NET sites.

The only thing it doesn't deal with are human cut-and-paste spammers.