О чём и речь. Если позволить боту брутфорсом перебрать быстро миллион паролей — он ведь подберёт нужный. А если контролировать чтобы он набирал не быстрее чем самая скорострельная машинистка — уже не сможет.
AJAX уже давно пора использовать не только для красивостей но и для дела.
НЛО прилетело и опубликовало эту надпись здесьНЛО прилетело и опубликовало эту надпись здесь
Если к примеру у меня 100 разных картинок и брутфорс подбирает текст, то замена картинки — это тоже перебор. Перебор на перебор — комбинация может как не совпасть, так и совпасть раньше, чем если бы не было замены картинки (при брутфорсе бот её вообще выкачивать не будет).
А вот про увеличение длины при паре-тройке неправильных вводов — тут я с Вами полностью согласен.
Конечно. Но я же написал — контролировать скорость ввода на сервере. Именно для этого и нужен AJAX — чтобы отправлять каждый символ и фиксировать этот момент отправки, а не всё слово целиком по-старинке.
С задачей набирать медленно? Конечно справится. Но идея взлома перебором просто умирает, т.к. время на перебор резко увеличивается — скажем с часа до месяца.
Конечно у меня бы вызвал подозрение человек, который 10 раз неправильно ввёл каптчу — или он пьян, или бот. И в том и в другом случае можно дать ему отдохнуть несколько часов прежде чем продолжить приём. Это тоже анализ интерактивного взаимодействия с пользователем, на основе которого человека можно отличить от машины.
Задачей было не усложнить жизнь пользователю, разгадывающему исковерканную до неузнаваемости абра-кадабру какая на большинстве сайтов, а упростить — например когда меня просят набрать цифры, а потом просят набрать буквы с картинки где их хорошо видно, я это с лёгкостью сделаю.
И даже если робот распознает текст — он ему не поможет, т.к.
1) робот не знает задания, которое может меняться и подгружаться на лету
2) робот отправляет ответ целиком и не печатает со скоростью человека
Идея в том чтобы сделать «отпечатком пальца» не только ответ, но и то, как он был набран, реакцию пользователя.
Я наверное чего-то не понимаю. Вы-то кажется не только картинку посмотрели, а и текст тоже. Я же сразу написал что на картинке приведён совсем уж утрированный вариант.
какое количество? у него запрос — получить символ — сохранить. Это конечно в несколько раз больше чем передать код целиком, но не намного.
Речь о каптче — при чём тут автогенерилки паролей?
Автозаполнялки паролей тоже идут лесом, см. выше
Неужели вы предлагаете сохранять на диск состояние системы, которое нужно в ближайшие три минуты?
Я не думаю, что ввод любой капчи занимает больше 20-30 секунд, сохранять подобные данные на диск мне кажется не разумным.
Ну а если вы про запись в логи (других идей у меня нет) — по крайней мере в nginx-е их для определенных location-ов тривиально отключить.
Я не умею писать на PHP хороший и правильный код, но, думаю, там тоже есть нормальные интерфейсы к memcached и другим инструментом хранения данных в памяти между запросами.
Да и сессии, кстати, иногда рекомендуют хранить на tmpfs.
А вы про лишние коннекты или лишние запросы? Если про лишние запросы то, думаю, это экономия на спичках. В любом случае, без конкретных цифр рассуждать о том, лишний запрос или нет — плохая идея. Если этот лишний запрос позволяет что-то сделать полезное — почему бы и нет, благо капчу распознать нужно один раз, а потом можно авторизовать пользователя по сессии.
Всегда можно сделать запасной вход. Со старой плохочитаемой длинной каптчей.
Хотя конечно доля пользователей без JS и Flash продолжает стремиться к нулю
Скажем так — это нужно делать, если это необходимо. Но вот насколько это необходимо? Сейчас AJAX работает даже в мобильных браузерах, не говоря уже про все настольные. Если у кого-то он не поддерживается — это значит что пользователь не может полноценно пользоваться всеми возможностями интернет. Конечно встречаются пользователи, которые отключают в браузере Javascript и Cookies а потом жалуются на жизнь — не могут что-то купить в интернет-магазине и т.д. При этом они-же радостно открывают письма со всложенными *.scr-файлами с вирусами. Я не вижу объективных причин для такого самоограничения — так можно и браузер удалить как потенциальный источник заразы, только интернета не будет. Совсем.
Помню случай с таким горе-разработчиком капчи:
— Она такая хитрая! через JS все определяет, и поведение пользователя, и как набирает и все следит! И ни одного робота не пропустит!
— А если JS нет?
— Ну я подумал, что таких немного, и им просто без проверки писать разрешил…
Даже у самого Шахиджаняна есть то количество знаков в минуту, которое он способен набирать. И это на порядки медленнее, чем возможности компьютера, так что тут проблемы нет.
Опубликуйте в комментах — если народу понравится — опубликуете отдельным топиком. Лично подкину.
Хотя публиковать идеи на Хабре — рискованная затея по сравнению с копипастингом и переводом комиксов. У меня например сегодня кармы поубавилось — забывают что если не нравится топик, то минусование кармы никак не влияет на него — надо минусовать сам топик.
Топик был подготовлен, но при отправке обнаружена недостача кармы =(
Web-разработка → Ещё одна идея CAPTHA
Идея родилась после просомтра топика Интерактивная каптча, в нём хабрачеловек Stepanow написал «Моя идея в интерактивном взаимодействии с пользователем, чтобы понять что это не робот», и ту меня осенило…
Вот пример на картинке.., всё предельно просто;) Сомневаюсь что роботу будет подсилу таскать фигурки на страничке. Вот так вот, дети могут делать, а роботы нет!
Ещё в дополнение, можно поместить букву или цферку на элемент, с кешированием элементов нагрузка невелика будет.
Гм. Наобещал поднять — а оно пишет «повторное голосование запрещено» — выходит я Вас уже когда-то успел плюсануть.
Идея действительно прияная и наглядная. И если делать каждую фигуру отдельной картинкой с произвольным именем файла — тогда и ломалку-то не так просто сделать — это же надо определять тип фигуры… Да и за «тасканием» тоже можно в реальном времени следить, хотя необычность капчи такова, что классические методы взлома под неё не подходят, а что-то специально против неё спамеры врядли писать будут. В общем от меня зачёт, я надеюсь Вам накинут кармы и Вы опубликуете топиком.
В принципе на данной картинке предлагается выбрать 2 картинки из 14. Итого 2*14 = 28 вариантов, что весьма немного. Но это только если проверять результат по факту. Если таскать drag'n'drop-ом, и отслеживать координаты когда фигурка будет отпущена — то мы можем следить за процессом. И отслеживая действия пользователя — уже решать не бот ли это. Ведь перетащить объект можно только за конечное время. Если объекты таскаются произвольно и в пункте назначения неправильные фигуры — делать паузу и менять капчу (можно оставлять ту-же задачу, но менять все картинки и их имена). Слежение за процессом позволяет сделать решение капчи без лишней кнопки «Ок» — если треугольники оказались где надо, пользователь войдёт больше ничего не нажимая.
смешно. то есть для бота задача из «распознать некоторую максимально искаженную строку и отправить её на сервер» превращается в «распознать несколько простых геометрических фигур и отправить их на сервер» и вы действительно считаете, что это сложнее? или, может быть, исказить фразу «желтые треугольники»? =)
Любая капча «нового типа» — непреодолимая задача для спам-бота, ибо он не знает что с ней делать. Конечно до того момента как эта капча получит популярность и за ней будет скрываться достаточное количество лакомых кусков для спамеров. Тогда они начнут искать против неё противоядие и тут уж от самой капчи будет зависеть — будут её обходить или нет.
Во всяком случае против нестандартных капч не прокатывает проверенный спамерский трюк, когда в автоматическом режиме изображение капчи копируется и показывается на варез-сайте при нажатии там пользователем кнопки «скачать» — пользователь «распознаёт» и результат его ввода отправляется сайту, чья это капча. Поскольку человек, который хочет скачать пиратскую игру, очень хорошо распознаёт капчи по сравнению с роботами — успех обеспечен и робот начинает радостно спамить. А с нестандартными капчами так не поступишь, особенно если надо что-то таскать, или вводить по одной букве.
Вообще, каптчи превращаются в настоящее искусство…
Вот изобретут относительно дешевые плоские панели, можно будет сделать выставку каптчей в картинной галерее.
Капчи в рамках от картин.
И каждый человек может подойти, и ввести правильное число/буквы/цифры. Сказать что написано на каптче — прямо так, сразу голосом!
А картинка улыбнется и скажет: да, ты, брат, реально человек! Человечище!
Все капчи, в которых написано задание на каком бы то ни было языке (русском, английском, украинском, монгольском,… — не важно), обречены на провал.
Ну не сможет американец прочитать задание, написанное по-украински, а русский не поймёт написанного по-голландски!
В идее с фигурками разноцветными, можно пиктограмно поставить задачу… к примеру из одной области вдругую стрелку нарисовать и посередине стрелки нарисовать желтый треугольник. ТИМХО разберется даже 2ух летний индус.
да, вполне… а вспомнив рапиду можно и кошечек с собачками и «ежиками» вспомнить)))
реально чем проще задача, тем сложнее для роботов… и не надо напрягать зрение и разум…
Идея с задержкой:
— Устанавливаем сессию.
— Показываем капчу, время запроса капчи сохраняется на сервере.
— Если форма с (неправильным) ответом на капчу приходит менее чем через некоторый промежуток времени, выводим пользователю страничку с формой и ошибкой таймаута. Если js поддерживается, через таймаут прогружаем аяксом новую капчу, если нет — рефрешим страницу. Нормальный пользователь не заметит, боты пойдут лесом, если интервал, скажем, 3 секунды.
Я бы всем сегодняшним «изобретателям капчи», прежде чем рожать «свежаки» посоветовал сначала более подробно изучить вопросы как составления капчей, так и их обхода. А то устроили сегодня день изобретения велосипедов, к тому же одноколесных, ей-богу. А то понасмотрелись на сайтах капчей и думают что все видели и все про этот вопрос знают)))
Спасибо за конструктивную критику, прочитайте это, не хочу дублировать.
Ну конечно такие статьи Важнее для хабрасообщества чем мои мысли, куда уж мне до сисек.
Не совсем каптча и не на 100% то что я говорил, но часть идеи реализована. Можно даже сказать: «Какой удар от классика» :)
Хороший пример для сомневающихся в реализуемости, спасибо
Интерактивная каптча