Check your user is human. Have him retype a word in a graphic
Do you have trouble with automated programs completing forms on your websites and making cart loads of submissions? Or even just a few spammers submitting their betting ads, performance enhancing pill sites, and share purchase suggestions? And yet you don't want to have to have anyone who wants to use your site register.
Using what has become known as
captcha technology, you can display a graphic with some text on what's basically a login page, then have your human user type that text back in. It's very difficult indeed for automata to recognise the text, and can be doubly so if you vary the background, change fonts between characters and change text colour, scale, rotation. Mind you, you can make it pretty tough for the human too.
You'll find captcha in use already on many big sites, and there are other sites that will host the service for you. Actually, if you've got PHP available and the GD module it's very easy to code it up from first principles and that gives you the ultimate of flexibility.
*
Try my demo here
*
Show source code of main demo
*
Show source code of graphic generator (written 2006-07-17, updated 2009-01-14)
Associated topics are indexed under
A192 - Web Application Deployment - Firewalls [3680] How can I run multiple web servers behind a single IP address? - (2012-04-02)
[3679] Setting up your Linux system as a firewall using iptables - (2012-04-02)
[770] Splash! - (2006-06-20)
G903 - Well House Consultants - Running and moderating forums [4065] Handling requests to a forum - the background process - (2013-04-17)
[4025] Backups, Codebase, Strategy and more - dealing with forum incidents - (2013-03-03)
[4017] Acceptable User Policy / vexatious interacter - (2013-02-24)
[3910] Identifying your real customers and keeping them well informed fast - (2012-11-02)
[3479] Practical Extraction and Reporting - using Python and Extreme Programming - (2011-10-14)
[2820] Netiquette for forum newcomers - (2010-06-20)
[2781] The 500 pound question to get you started - (2010-05-26)
[2569] How to run a successful online poll / petition / survey / consultation - (2010-01-10)
[2527] Flying tonight - (2009-12-05)
[2526] A reluctance to move from old shoes to new - (2009-12-05)
[2386] Computing under the influence of alcohol - (2009-08-29)
[2254] Forum membership - a privilege not a right - (2009-06-22)
[2177] Preventing forum spam - checks at sign up - (2009-05-12)
[2162] Admins thoughts on banning a member from a forum - (2009-05-09)
[2156] Stopping forum spam - control of the signup process - (2009-05-04)
[2116] Why do we delay new forum members through authorisation? - (2009-04-03)
[2103] Ask the Tutor - Open Source forum - (2009-03-25)
[1972] Pettifog and forum boards away from public view - (2009-01-03)
[1923] Making it all worthwhile - (2008-12-04)
[1759] While the world sleeps ... - (2008-08-19)
[1678] Software - changes and delays. But courses must run on time! - (2008-06-15)
[1595] First Great Western Weekend - (2008-03-30)
[1578] Please don't shout at me! - (2008-03-16)
[1569] I dont care - goodbye - (2008-03-09)
[1563] Guidlines for posting on a forum - (2008-03-04)
[1539] A forum is not always the best vehicle - (2008-02-14)
[1532] Comment spam blocked. Please comment via Forums - (2008-02-05)
[1523] Ive just received an email from myself. Should I be worried? - (2008-01-29)
[1485] Copyright and theft of images, bandwidth and members. - (2007-12-26)
[1472] The Horse goes on and on - (2007-12-15)
[1362] No Thank You - (2007-09-23)
[1190] Save the Forum - A regular clean sweep - (2007-05-17)
[1088] Why use BBC code not HTML? - (2007-02-21)
[948] Running an on line campaign - (2006-11-27)
[923] Why shouldn't I spam? - (2006-11-13)
[919] Freedom for X is denial of privacy for Y - (2006-11-09)
[841] Forum help - a push in the right direction - (2006-08-21)
[828] Freedom of speech and freedom to post - (2006-08-10)
[651] Please Register with Opentalk - but just once! - (2006-03-19)
[516] Open source questions? Anyone can ask. - (2005-12-03)
[424] How not to run a forum - (2005-08-24)
[248] Use me, but use me effectively - (2005-03-16)
[231] Feedback as lifeblood - (2005-02-28)
[204] The confidence to allow public comments - (2005-02-06)
[130] Spelling and grammar - (2004-11-25)
[115] Expiration dates or times on web pages - (2004-11-12)
[29] Silence is Golden - (2004-08-26)
[22] Falling out over the silliest things - (2004-08-21)
H304 - PHP - DDA, Style and image handling [3747] An easy way to comply with the new cookie law if your site is well designed - (2012-06-02)
[2917] Upload Image, Store in database, redisplay in browser. PHP and MySQL - (2010-08-12)
[2715] Uploading an image, document or pdf via a browser (php) - (2010-04-10)
[2539] Changing Images - (2009-12-17)
[2343] World Flags in your PHP pages - (2009-08-10)
[2031] Choosing from an image with an image map - (2009-02-08)
[1506] Ongoing Image Copyright Issues, PHP and MySQL solutions - (2008-01-14)
H999 - Additional PHP Material [3210] Catchable fatal error in PHP ... How to catch, and alternative solutions such as JSON - (2011-03-22)
[3118] Arrays of arrays - or 2D arrays. How to program tables. - (2011-01-02)
[2684] Exception handling in PHP - (2010-03-18)
[2215] If nothing, make it nothing. - (2009-06-02)
[2073] Extra PHP Examples - (2009-03-09)
[1623] PHP Techniques - a workshop - (2008-04-26)
[1519] Flipping images on your web page - (2008-01-26)
[1505] Script to present commonly used images - PHP - (2008-01-13)
[1451] More PHP sample and demonstration programs - (2007-12-01)
[1391] Ordnance Survey Grid Reference to Latitude / Longitude - (2007-10-14)
[1390] Converting from postal address to latitude / longitude - (2007-10-13)
[1389] Controlling and labelling Google maps via PHP - (2007-10-13)
[1270] PHP Standalone - keyboard to screen - (2007-07-18)
[1194] Drawing hands on a clock face - PHP - (2007-05-19)
[1104] Drawing dynamic graphs in PHP - (2007-03-09)
[1053] Sorting people by name in PHP - (2007-01-26)
[1020] Parallel processing in PHP - (2007-01-03)
[1010] Dates, times, clickable diarys in PHP - (2006-12-28)
[937] Display an image from a MySQL database in a web page via PHP - (2006-11-22)
[917] Syntax checking in PHP - (2006-11-07)
[839] Reporting on the 10 largest files or 10 top scores - (2006-08-20)
[822] PHP - a team member leaves - (2006-08-04)
[789] Hot answers in PHP - (2006-07-02)
[687] Presentation, Business and Persistence layers in Perl and PHP - (2006-04-17)
[665] PHP Image viewing application - (2006-04-01)
[603] PHP - setting sort order with an associative array - (2006-02-13)
[563] Merging pictures using PHP and GD - (2006-01-13)
[493] Running a Perl script within a PHP page - (2005-11-12)
[483] Double Dollars in PHP - (2005-11-02)
[468] Stand alone PHP programs - (2005-10-18)
[372] Time calculation in PHP - (2005-07-08)
[337] the array returned by preg_match_all - (2005-06-06)
[322] More maps - (2005-05-23)
[320] Ordnance Survey - using a 'Get a map' - (2005-05-22)
[239] What and why for the epoch - (2005-03-08)
[54] PHP and natural sorting - (2004-09-19)
5549
Some other Articles
A bad place for security firmsWhat to do during a Linux buildSales callTelling large from smallCheck your user is human. Have him retype a word in a graphicMelksham Carnival ParadeThe Courts, HoltNot shoutingundefined reference to typeinfo - C++ error messageSimple polymorphism example - C++