внедрение капчи во flash

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


person Bachalo    schedule 21.02.2010    source источник
comment
Боты регулярно загружают Flash и заполняют свои формы? Звучит как сложный бот. Однако я не сомневаюсь, что они существуют. Но если да, то насколько безопасным может быть обфускация JavaScript на простых веб-сайтах? Я полагаю, что кто-то может заполнить вашу форму, а затем скопировать значения POST и повторно отправить, как им заблагорассудится.   -  person alex    schedule 22.02.2010


Ответы (5)


На самом деле это не так уж отличается от капчи в HTML-форме.

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

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

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

person Juan Pablo Califano    schedule 22.02.2010

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

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

person Samuel Neff    schedule 21.02.2010
comment
и если вы позже обнаружите, что это проблема, достаточно легко вернуться и добавить. - person cobbal; 22.02.2010

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

person Jonatan Hedborg    schedule 21.02.2010

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

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

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

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

person Warty    schedule 22.02.2010

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

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

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

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

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

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

person Stephen Dolier    schedule 22.02.2010