Forum Moderators: coopster

Message Too Old, No Replies

Human Input Validation

Validation Confirmation of Online Registration Form

         

anjanesh

5:01 am on Sep 28, 2004 (gmt 0)

10+ Year Member



In most sites when we register, we've to enter the string of letters/numbers that is displayed in a distorted image format. I need to do that for my site but I want to know from where I can get those 62 (a-z,A-z,0-9) images. Creating all of them one by one will take time. Or maybe some algo to make those images first in some app?
Thanks

Larryhat

5:21 am on Sep 28, 2004 (gmt 0)

10+ Year Member



Hello Anjanesh: I think that's a good idea.
Sorry I can't help with the technical side, but I want to offer some human advice:

1) Avoid letters and numbers that will be confused with one another, i.e zero/letter O; i, l and the numeral 1,

2) You might make the test case insensitive. Upper / lower case often fouled me up.

3) 6 characters should be enough to foil a machine attack. Many more and you drive traffic away.

Altavista used to have that device on their site submission page. I got confused, entered the same pages twice (I THINK that's what I did) and my site was banned completely for over a year!

That only went away when AV was bought out.

best

- Larry

anjanesh

5:28 am on Sep 28, 2004 (gmt 0)

10+ Year Member



This is one site I found useful :
[cs.berkeley.edu...]
But its mainly related to creation of such images using AI methodology.
Thats a different issue and will take time to accomplish that kind of code soon. This is mainly research based area.
But I was hoping to get some images as such so that I can just put them up on my site based on random filenames and then merging them with standard gd functions.

incywincy

5:47 am on Sep 28, 2004 (gmt 0)

10+ Year Member



you could just use digits 0 to 9. create the distorted images in a picture editor then use a PIN number.

That way you can control the security by using a big or small number of digits and you only have to edit 10 images.

mincklerstraat

7:16 am on Sep 28, 2004 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



You could use GD (see php's image functions) to do this, make a quick batch script and have it output images of everything you want - or even better, you could just use GD to make the whole image used for human recognition. That would make more sense, I think.

anjanesh

8:34 am on Sep 28, 2004 (gmt 0)

10+ Year Member



Yes. Thats what I intend to use - GD.
But I thought if I could get teh 62 images and then use GD to combine them to form a string and then output that image for verification.
Making the image a whole without the use of separate images involves high AI algorightms which will take lot of time.
I did a google search and found that these are into high research based areas where the algos are not that simple - [cs.berkeley.edu...]
The paper at [cs.berkeley.edu...] has the details involved in this.
I dont think Im in a position to get into that much detail right now. For a quick solution I was hoping to get some readymade images or atleast a s/w that'll do the job.

mincklerstraat

9:00 am on Sep 28, 2004 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



The question of capcha-like technology is how to create an image which sends a message which a human user can duplicate, and a bot can't. And of course, you can train bots to do a lot of interesting things. I'd guess that if you really want to do a bang-up job on this, you'll want a number of different sets of the 62 characters, or your repetition of the same image for the same character will mean that the bot will only have to learn 62 different images, each easily matching one character. If a bot really wants to get into your site, learning 62 different images is a cakewalk.

You could also just use the GD standard font, or a TT font, and first take a random white background speckled with black or other background noise - make like 4 really big ones - grab one, position it sort of randomly and crop the rest off, and then just write the text on this, and then add another layer of random white speckles on a transparent background on top of that. Same proceedure with the background - have 4 big ones, grab one, randomly select the area you want, superimpose.

This way all your letters / numbers will be truly different each time, and the whole procedure shouldn't take so long to write.

If you want to go fancier, when you're printing the letters, change the font face every letter, and the font size just a bit. You can go even crazier using image rotate.

No high-level AI stuff, just a bit of common sense. Not as good as the stuff coming out of the labs, but cheap and easy enough.