Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

fighting spam bots

I have C# form in the site and want to prevent spam bots from filling it. The trick is, that I want to avoid CAPTHA or any other user input to avoid loosing a single registration.

Here are some techniques I have in my mind:

  1. Hidden input field (question: is this still effective?)
  2. Track time, since the first user input (focus on FirstName) till posting a form.. Humans will take more than 3 seconds to complete a form (even with auto-fill), where bots take a second or less to fill in registration and post it. (question: if I start timer with the first user input, when should I stop it?)
  3. Put in the form tag a fake post url, or post form to itself, and only on Submit button click action to add a real post url with javascript. (question: wonder if new spam bots can cheat this?)

I would be glad to hear other techniques I could adopt, again, without using CAPTCHA, spam filters, form verifications and even validation. Thank you

like image 545
Stewie Griffin Avatar asked Apr 11 '11 15:04

Stewie Griffin


3 Answers

would be good to have some sort of flash which asks you to reconnect dots (so that it is interactive and doesnt require typing), and when the user does it correctly, you can post with submit to check.

Never liked CAPTCHA, especially the wierd ones where even humans have problem intepreting it :)

like image 153
Bek Raupov Avatar answered Sep 21 '22 13:09

Bek Raupov


A year ago there was a nice control for asp.net that put a hidden field on the form. With a javascript formula. Robots posted it back - and it wanted the result (stored the result first in the session). basically, as robots dont interpret the form in a browser (too slow).... ;) Most got just thrown out there.

Also, another tip: put in hidden fields for the email to address. Some (old)php forms use a mailer supportnig this. OBVIOUSLY only a robot fills that out ;) If not empty -> garbage.

Anyone else have any smart ideas? ;)

like image 33
TomTom Avatar answered Sep 20 '22 13:09

TomTom


I would say stick with Captcha or a similar thing where the user has to type something in.

The problem with using JavaScript is that not everyone has javascript turned on and quite a few have it turned off for various reasons.

Now if you want to really track time, send a hidden form field with the server time filled in. When the postback occurs take the delta of that with the current time. Obviously if the field is missing then you know someone directly posted.

like image 24
NotMe Avatar answered Sep 24 '22 13:09

NotMe