Apple users captched

Как-то утром для реализации одного небольшого, но забавного гео-политического социо-сетевого проекта мне понадобилось легко и непринужденно отделять посетителей, пользующихся Mac OS X от посетителей, вынужденных наслаждаться другими операционными системами. Работать это должно было так, чтобы неумышленно обдурить распознавание было нелегко, даже сменив описание броузера или отключив JavaScript. Стремясь найти наиболее изящное решение, я решил посмотреть пару серий аниме Cowboy Bebop и решить проблему не в лоб. Например, выпадающий список «What’s your OS?» был отвергнут в первые же миллисекунды.
Не все пользователи Mac OS X знают и почти все пользователи других операционных систем не подозревают, что если в любом текстовом поле в Mac OS X нажать комбинацию Shift+Option+K (Shift+Alt+K), то появится не очередная буква, а логотип Apple. Это работает везде (кроме Фотошопа и Иллюстратора ;). Мало того, другие операционные системы не показывают этот символ в Юникод-кодировках, заменяя его на знак вопроса. Так что первое решение было простым и очевидным:

Скопировать яблоко не в Mac OS X невозможно, ввести каким-то невероятным способом — тоже. Но сложная комбинация для ввода невероятно усложняла форму, хоть и потенциально отсеивала роботов. Что ж, тогда спрячем все от пользователя и заставим броузер выполнять его работу:
<input type="hidden" value="" name="areugay" />
Для тех, кто видит value=”?” я приложу картинку того, как это выглядит в Safari:

При отправке формы скриптам на сервере, броузер отправит тот символ, который поймет. Если дело будет происходить под Mac OS X, то сервер получит логотип Apple Inc., а если под управлением другой операционной системы, то знак вопроса.
![]()
Открытым остается лишь вопрос, как все это проверять на сервере, но мне кажется, что можно решить и это ;)


