реализация капчи во Flash - PullRequest
       3

реализация капчи во Flash

3 голосов
/ 22 февраля 2010

Я разрабатываю форму для быстрой регистрации, и мне нужно включить динамические изображения с капчей для подтверждения. Кто-нибудь может порекомендовать лучшее решение для этого?

Ответы [ 6 ]

5 голосов
/ 22 февраля 2010

Captcha используется, чтобы запретить ботам отправлять HTML-формы, что легко сделать, так как HTML легко понимается и обрабатывается программно. То же самое не верно для приложения Flash. Боту было бы сложно отправлять формы Flash, если он специально не предназначен для таргетинга на ваш сайт.

Поэтому вам не нужно беспокоиться о том, что проблема с спамом решается при работе с Flash-приложением.

2 голосов
/ 22 февраля 2010

Создание сильной капчи не является тривиальной задачей. Для ботов это должно быть достаточно сложно, но для успеха достаточно просто для людей ... Я бы посмотрел на существующие системы и, возможно, использовал бы их. reCAPTCHA популярен http://recaptcha.net/. Может быть возможно использовать его через flash, но я не изучал его.

0 голосов
/ 22 февраля 2010
public class Captcha extends Sprite{

   private var question:String = "How do you feel?";        
   private var _answer:String;
   private var isRobot:Boolean;

   public function Captcha(answer:String){
            _answer = answer;
        }
   public function checkAnswer():Boolean
       if(answer != "sad"){
          isRobot = true;
          return isRobot;
       }else{
          isRobot = false;
          return isRobot;
       }
    }
}
0 голосов
/ 22 февраля 2010

Нам было очень необходимо внедрить CAPTCHA во флэш-анимацию / форму.

Наиболее важный момент, на который следует обратить внимание, заключается в том, что FF или IE (не могут вспомнить, какой именно) не отправляют файлы cookie обратно с вызовом веб-службы. Поэтому, если вы отправляете форму в веб-службу .Net, вы не можете использовать состояние сеанса http-запроса для сохранения текста капчи, а затем сравнивать введенное пользователем значение капчи в представлении с веб-сервисом (веб-метод с включенным сеансом )

Мы реализовали следующее:

  • Установить уникальное значение токена (Guid) на веб-странице
  • передать этот токен как флешвар во флэш-фильм
  • загрузить изображение капчи во флэш-память с токеном в качестве параметра url. Т.е. captchaImg.aspx? T = xxxxxxx
  • во время этого запроса сохраните случайный текст капчи в таблице с токеном
  • когда пользователь отправляет свою форму, сравните токен и введенное пользователем значение капчи со значением в таблице

Этот подход очень хорошо работает для нас.

Это также безопасный веб-ферма.

0 голосов
/ 22 февраля 2010

Это ничем не отличается от капчи в HTML-форме.

Предположим, вы используете php на сервере и у вас есть сценарий captcha.php, который генерирует изображение captcha и сохраняет его значение в сеансе. В форме HTML вы должны использовать элемент и установить его src в captcha.php. Пользователь должен заполнить поле текстом, который он видит на изображении. В сценарии, который получает сообщение, вы должны проверить, соответствует ли введенный пользователем параметр сеанса.

Во флэш-форме все точно так же. Вы загружаете изображение, вызывающее captcha.php, и просите пользователя ввести дополнительное поле. Затем, когда вы отправляете данные на сервер, вы передаете значение, введенное пользователем, в поле капчи, и сервер сопоставляет его со значением, которое он сохранил в сеансе при вызове captcha.php.

Итак, в основном, это то же самое, что и в форме HTML.

0 голосов
/ 22 февраля 2010

Скорее всего, боты не будут написаны для вашего сайта. Если когда-нибудь возникнет необходимость, просто "добавьте эти два числа для меня, к?" было бы достаточно просто.

Честно говоря, я сомневаюсь, что кто-то напишет распознавание писем, чтобы зарегистрироваться несколько раз на вашем сайте = /

Вам следует больше беспокоиться о том, что кто-то может дизассемблировать [или что-то еще из термина flash] ваши .swf s и просто отправлять «регистрируемые» сообщения на ваш сервер = /

И да, тем самым я пытался подразумевать, что Captcha должен применяться на стороне сервера, или, на самом деле, его не так уж сложно обойти.

...