mega.genn.org

available in English, too!

Apple users captched 21 комментарий

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

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



Комментарии и трекбеки

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•09: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•02: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•09:57 XanDer

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

22.08.08•10:38 YaD

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

24.08.08•16:50 unshy

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

9.09.08•08:20 TuMyP

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

9.06.09•22:23 Irrervegort

Добавил в закладки. Днесь буду почаще декламировать!

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

имя и адрес электронной почты — необходимые поля

Комментировать

Свежие твитты

Другие сайты и сети