mega.genn.org

Apple users captched

apple-man (variation of Pack-man hieroglyphs combined with Apple)

Как-то утром для реализации одного небольшого, но забавного гео-политического социо-сетевого проекта мне понадобилось легко и непринужденно отделять посетителей, пользующихся Mac OS X от посетителей, вынужденных наслаждаться другими операционными системами. Работать это должно было так, чтобы неумышленно обдурить распознавание было нелегко, даже сменив описание броузера или отключив JavaScript. Стремясь найти наиболее изящное решение, я решил посмотреть пару серий аниме Cowboy Bebop и решить проблему не в лоб. Например, выпадающий список «What’s your OS?» был отвергнут в первые же миллисекунды.

Не все пользователи Mac OS X знают и почти все пользователи других операционных систем не подозревают, что если в любом текстовом поле в Mac OS X нажать комбинацию Shift+Option+K (Shift+Alt+K), то появится не очередная буква, а логотип Apple. Это работает везде (кроме Фотошопа и Иллюстратора ;). Мало того, другие операционные системы не показывают этот символ в Юникод-кодировках, заменяя его на знак вопроса. Так что первое решение было простым и очевидным:

Enter Apple Inc.

Скопировать яблоко не в Mac OS X невозможно, ввести каким-то невероятным способом — тоже. Но сложная комбинация для ввода невероятно усложняла форму, хоть и потенциально отсеивала роботов. Что ж, тогда спрячем все от пользователя и заставим броузер выполнять его работу:

  1. <input type="hidden" value="" name="areugay" />

Для тех, кто видит value=”?” я приложу картинку того, как это выглядит в Safari:

Are you gay?

При отправке формы скриптам на сервере, броузер отправит тот символ, который поймет. Если дело будет происходить под Mac OS X, то сервер получит логотип Apple Inc., а если под управлением другой операционной системы, то знак вопроса.

Apple eats

Открытым остается лишь вопрос, как все это проверять на сервере, но мне кажется, что можно решить и это ;)

10.08 в 23:39
11.08.08 в 13:00 | Anton:

areugay?

11.08.08 в 13:48 | рыбаз:

> Открытым остается лишь вопрос, как все это проверять на сервере, но мне кажется, что можно решить и это ;)

Имхо, на сервер в обоих случаях прийдёт один и тот же юникод символ (то, что браузер не может его отобразить роли не играет).

11.08.08 в 17:19 | Trita:

Огромное спасибо за инфу. Автору респект и уважуха.

11.08.08 в 19:36 | Genn:

рыба3, тогда пусть вводят ;)

11.08.08 в 21:30 | Михаил Ростов:

Полезный вывод. Думаю пригодится.

14.08.08 в 9:37 | Cinic:

Всё таки, мне кажется что, при отправке формы на сервер с windows платформ будет прилетать знак вопроса. Я не проверял, но вывод такой сделал на примере ICQ, когда мне пишут (у меня Mac OS X) с XP, то я получаю непонятный набор символов, отправляя его назад, пользоватль соответственно получает тот же набор “кракозяб” :)

14.08.08 в 14:33 | Newton:

Зер гуд ставлю 5 балов.

14.08.08 в 20:00 | Defiler:

Классная тема, пишите чаше - у вас отлично получается

16.08.08 в 10:06 | GROM:

Отличная статья, спасибо!

16.08.08 в 18:42 | Marzazil:

хороший рассказ, все разложено по полкам

17.08.08 в 18:44 | Winampov:

Спасибо. Прочитал с интересом, и вообще полезный у Вас блог

18.08.08 в 2:48 | MeduZZa:

Хорошая статья, узнал много нового!)

18.08.08 в 11:32 | Donder:

Спасибо за Ваш труд!!

20.08.08 в 15:06 | UltimateX:

Спасибо ;)

20.08.08 в 15:25 | exe_XoMbl4:

Забавно! Не то слово!

21.08.08 в 23:06 | SPIRIT:

Жжешь, дружищще))

22.08.08 в 9:57 | XanDer:

Отличная статья Спасибо огромное

22.08.08 в 10:38 | YaD:

Спасибо. Прочитал с интересом, и вообще полезный у Вас блог

24.08.08 в 16:50 | unshy:

Занятная статья

9.09.08 в 8:20 | TuMyP:

а-а, спасибо )

Оставить комментарий

Copyright © 2007 Genn
Сайт работает под управлением WP-турбийона.
Что делать, если пропали категории после перехода на WP 2.6
Why So Serious?