Posted on

The idea of Captchas are pretty old. You can find a lot of information about them visiting  :

  • render the characters with different colors
  • make some characters darker than the background, and some lighter
  • use gradient colors for the backgrounds and the characters
  • don’t align all the characters vertically
  • don’t make the answers words, so that a dictionary could be used
  • use more characters and symbols
  • use uppercase and lowercase characters
  • use a different number of characters each time
  • rotate some of the characters more drastically (i.e. upside down)
  • do more overlapping of characters
  • make some pixels of a single character not touching
  • have grid lines that cross over the characters with their same color
  • consider asking natural language questions

     

    Next day I was found link to Microsoft project – Assira.
    The main idea it can’t be decoded because it required human to make proper choice to filter dos,from cats photos.

    Asirra (Animal Species Image Recognition for Restricting Access) is a HIP that works by asking users to identify photographs of cats and dogs. This task difficult for computers, but our user studies have shown that people can accomplish it quickly and accurately”

    Millions of pictures feeded to system make it impossible for bots to filter cats from dogs. And it add a lot of fun comparing boring process of character recognition.

     

    Probably I will replace my home made captcha with this service, because my hosting provider not allowing to deploy unsafe dll which required for some image filters(i removed them to make safe compilation).

    Main advantage to developer form Asirra, that

    • free service
    • no additional components to be host
    • easy integration with existing forms

    To integrate Azirra to your page you need to:

    1. Place javascript link to your page
      <script type="text/javascript" src="http://challenge.asirra.com/js/AsirraClientSide.js"></script>
    2. Attach javascript to onclick event of your button
      onclick="javascript:Asirra_CheckIfHuman(HumanCheckComplete)"
      where HumanCheckComplete
      is your form submit function

      <script type="text/javascript">
      function HumanCheckComplete(isHuman)
      {
           if (isHuman)
           {
                formElt = document.getElementById("mainForm");
                formElt.submit();
           }
           else
           {
                alert("Please correctly identify the cats.");
                return false;
           }
      }
      </script>

      After steps above hidden field Asirra_Ticket will be created and value from this field will be in posted form data

      You need to read this value and call AzirraService