[REBOL] Re: Preventing Automated Website Registrations
From: joel:neely:fedex at: 8-May-2002 14:32
Hi, Ted,
Here's a quick-and-dirty solution that avoids the need for any
on-the-fly image generation (which means it will run faster,
in all likelihood).
Thaddeus Serpa wrote:
> In a nutshell, the program generates an image containing some
> effects and a word within the image. The user has to enter the
> word in a text box. Since computers aren't able to decipher the
> word, it's a safe bet that the user is actually a human
> registering at the site and not an automated program.
>
...
> Unfortunately, I don't have the knowledge to do this myself. Can
> anyone offer some assistance?
>
Some background: A few years back I wanted to add a fancy-looking
hit counter
to a page, but without the overhead of the image
processing. I created a separate image file for each digit value
and a blank (let's call them 0.gif, 1.gif, .... 9.gif, and blank.gif
for the sake of discussion). The script would calculate the number
to be presented (let's say 2413 for example) and would generate html
something like the following:
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td><img src="blank.gif"></td>
<td><img src="blank.gif"></td>
<td><img src="2.gif"></td>
<td><img src="4.gif"></td>
<td><img src="1.gif"></td>
<td><img src="3.gif"></td>
</tr>
</table>
The results appeared essentially the same as a single custom-built
image, but required no server-side graphics code.
Now, in your case, you could have one (or more) image(s) for each
letter of the alphabet, and simply send a sequence of IMG tags,
perhaps wrapped in a table, to spell out a human-readable message
which wouldn't be visible to a 'bot.
Of course, you'd want to call them something besides a.gif, b.gif,
c.gif, etc. to avoid giving hints to the bad guys. The point of
having multiple images for each letter would be to allow the same
human-readable code to be "spelled" out in many different ways,
again making it harder for some nasty character to figure out how
to write custom code to interpret the html from your site.
Hope this helps!
-jn-