Как стать автором
Обновить

Комментарии 47

Простите, я немного не понял схему работы… Как это должно применяться? Могли бы хотя бы пример программы привести? К тому же сомневаюсь, что такая капча будет устойчивой…
Распознать обычный текст — просто. Проверить искаженное слово по словарному запасу — еще легче. В общем, слабая капча.
Согласен. Хотелось бы увидеть конкретную реалезацию.
Была на хабре статья, что всё равно буквы должны стоять не абы как.
Плюс ко всему, символы не искажаются. Бот берёт, смотрит, что же вы выделили жирным и по словарю подбирает слово по нечёткой логике. Определяем длину слова (сократили радиус поиска), получили буквы, используемые в слове (конкретно сократили радиус поиска до, думается мне, максимум пары десятков слов), А дальше дело техники.
Насколько сложно ли распознать какое слово было выделено жирным, если текст представлен в виде картинки?
И насколько легко можно распознать слово, если буквы переставлять в длинном слове (например, яндекс, не предлагает исправить слово «пряокде»?
Жирный минус — привязка к языку.
Я тоже без контекста не смог распознать «пряокде» :(
Суть в контексте как раз.
Для повышения устойчивости, можно выделять те слова, переставляя буквы в которых, можно получить разные словарные слова.
Ага. Значит хотите использовать контекст.

А кто будет составлять эти фразы? Или генератор капчи будет сначала выбирать случайный отрывок, потом проверять в нем каждое слово на наличие в словаре слов из таких же букв и хорошо если такое слово попадется, а если нет, то надо брать еще отрывок, а после еще генерировать изображение?
Ну вот ребята говорят, по словарю быстро можно все проверять.
Кроме того, я бы делал иначе. Составил бы список слов, переставив буквы в которых можно получить другое слово и потом просто искал отрывки с вхождениями таких слов.
Разумно. В таком случае нам нужен будет текст, в который в достаточном количестве входят слова одинаковые с точностью до перестановки букв и у каждого пользователя капчи этот текст должен быть свой.
Да тексты то найти не проблема, lib.ru. Запустил паука по классическим произведениям.
Вы капчу предлагаете сделать или программу пос составлению ребусов?

Еще один жирный минус — заставить посетителей разгадывать это.
Ну разгадывать какую-нибудь рекапчу то еще удовольствие тоже.
Согласен, но Вы же хотите сделать что-то более понятное?
Мне кажется проще распознать словарное слово, чем разбираться в слипшихся буквах. Ну и потом, это так, просто идея, приснилось.
Я не планирую идти с этим клянчить хулиарды инвестиций.
ну так взломщики эти же самые тексты себе в словари первым делом и добавят, а там уже дело техники по сути
составить словарь из текстов, потом выделить «правильные» слова, потом найти максимально похожие отрезки и «расшифровать» искажённые
Взломать очень просто. Достаточно выделить из текста требуемое слово, распознать, перемещать буквы в слове до тех пор, пока не найдем в словаре.
А вот и составьте слово жизнь из следующего набора: опаж

/irony
А какое слово в представленном тексте выделено болдом?
Это просто известная в узких кругах картинка-баян.
Мне кажется логичнее было бы разместить пример капчи, а ни какую то картинку.
Отображается: «икт». Что имелось в виду: «кит» или «тик»?
Во! Бот не сможет распознать. Сможет распознать человек исходя из контекста.
Написал комментарий, обновил страницу и он пропал. Еще пять раз обновил — не было его! Что это за обман?
Справа на странице такие зелененькие крутящиеся стрелочки. Может, поможет.
Во! Бот не сможет распознать. Сможет распознать человек, исходя из контекста. Вы видимо не обратили внимание, что показывается кусок осмысленного текста, а не одно слово.
Имелось в виду «икт». Ванжо, чобты преавя и пслоендяя бквуы блыи на мсете.
Что же людям всё капча покоя не даёт?
Хлебом, блин, не корми, только дай пользователя унизить…
Автор, а можно ли доверять этому утверждению? Я точно не помню, но вроде как, много лет назад я попробовал переставить буквы рандомно и ничего хорошего не получилось. Дайте примеров перемешанных букв, а то читать «правильно» перемешанное предложение не имеет смысла. Это похоже на то, что в 2012 году Марс будет размером с Луну.
Я так быстро программировать не умею. Голова еще болит, простите.
Скорее всего, перестановка должна учитывать расположение гласных и согласных, чтобы был эффект незаметности.
Вот упрощённый скрипт, различающий слова по пробелам и переставляющий рандомно средние соседние буквы (2-3 на 3-2, 4-5 на 5-4 и т.д. — т.е. здесь не полное рандомное перемешивание, но оно и лучше). Можно проверить, что выйдет (сносно, но негармонично). (Увеличил вероятность перемешивания для усиления эффекта :). )
	<body>

<script>
	txt ='Автор, а можно ли доверять этому утверждению? Я точно не помню, но вроде как, много лет назад я попробовал переставить буквы рандомно и ничего хорошего не получилось. Дайте примеров перемешанных букв, а то читать «правильно» перемешанное предложение не имеет смысла. Это похоже на то, что в 2012 году Марс будет размером с Луну.'
	randMixer = function(s){
		var a = s.split(' ');
		for(var i =0; i < a.length; i++){
			var c =a[i].charAt(0);
			for(var j =1; j < a[i].length -2 - (/[a-zA-Zа-яА-ЯёЁ\d]/.test(a[a.length -1]) ); j +=2)
				if(Math.random() >0.75)
					c += a[i].charAt(j) + a[i].charAt(j +1);
				else
					c += a[i].charAt(j +1) + a[i].charAt(j);
			a[i] = c + a[i].substr(j);
			console.log(a[i])
		}
		return a.join(' ');
	};
	onload = function(){document.body.innerHTML += '
'+ randMixer(txt);}
</script>

Типично выглядит так:
Атвор, а можно ли довреять эотму увтреджнеию? Я тчоно не помню, но ворде как, монго лет нзаад я ппоробовал пресеативть буквы рнаодмно и нчиего хрошоего не плочулисоь. Дйате пиремров преемшенаных бкув, а то читать «рпвалиьно» премешеанное перлджоение не иемет сымлса. Это пхооже на то, что в 2012 году Марс будет рзаемром с Луну.
Последнюю строчку побил парсер, должна выглядеть так:
onload = function(){document.body.innerHTML += '<br>'+ randMixer(txt);}
Круто. На мой взгляд выводы британских ученых подтверждаются. Весь вопрос в том, как организовать все это так, чтобы боты не пробились:
— вывод картинкой
— искомое слово можно трансформировать в другое словарное слово перестановкой букв
— выделять искомое слово в тексте неочевидным для ботом образом (я не знаю, насколько сложно отличать наклонный текст от обычного, например)
Выделять насколько слов из текста разными цветами, и просить разобрать слово конкретного цвета.
Насколько я знаю для лёгкости чтения первую и последнюю буквы надо оставлять на своих местах.
Скрипт так и работает.
Почти так.
Я, к примеру, «споткнулся» на слове «рпвалиьно»
скрипт посчитал кавычки за первую и последнюю буквы
На данный момент лучшая капча — это капча, которая использует в себе разные цвета, разные размеры букв и соответственно угол наклона. Но это должно быть на фоновом шуме черного цвета, чтобы буквы было четко видно обычному человеку, но трудно отфильтровать какому-нибудь скрипту. А этот пример капчи может и трудновато будет подобрать, но пользователю это доставит неудобство — читать весь текст ради какой-то регистрации. Проще уже просто 4 буквы ввести и все.
Я тут забыл пароль от гмейла. Замучался подбирать их капчу. Прочесть одно предложение и осмыслить его — просто. Если ты понял, какое слово имелось ввиду — это ~100% вероятность попадания. В отличие от всех других капч (ну кроме тех, которые предлагают складывать числа, чем лично мне импонируют более всего)
С обычной капчей еще какая проблема. Если ты не забыл пароль и подбираешь его, то параллельно ты еще подбираешь капчу, что увеличивает время на логин геометрически. Если бы у меня была возможность тратить секунду на текст, но при этом быть уверенным, что слово которое я введу точно верное, я бы предпочел такую капчу.
Возможно, такой вариант капчи уместнее тогда, когда предстоит большое количество попыток какого-то действия (подбор пароля, подбор незанятого логина, подбор свободного домена). То есть когда время на осмысление текста меньше, чем время повторной попытки.
Ну вот смотри о чем я говорил. Если брать такую капчу, то там все чересчур накручено, то есть буквы сливаются вообще, цвет один и тот же, что не позволяет пользователю разобрать где отдельная буква. Я бы гадал такую капчу очень долго, тогда я согласен с тобой, проще текст ввести или слово:
image
А если взять вот такую капчу, то проще же ввести эти буквы, согласись. Бот не сможет распознать, так как в одном месте сливаются, есть разноцветный фоновый шум и разные углы наклона. А для пользователя не придется мучится с разгадкой:
image
Соглашусь. Почему гугл использует тогда свою жуткую, а не нижние варианты? У гугловой выше стойкость?
Если я правильно понял, то ты говоришь о той капче, где нужно ввести 2 слова? Если правильно понял, тогда скажу свое мнение о такой капче. Мне приходится раза 2-3 обновить капчу, прежде чем попаду на нормальные слова, которые еще как-нибудь можно разгадать. А за стойкость, то она конечно неодолима, даже пользователь не может разгадать, я молчу за скрипты :) Вот только она тем самым делает о себе плохой отзыв, что не есть гуд.
Самым тяжелым словом для меня всегда было «Пичрионй»
Вы веьсрез пготлеае, что тнудро птирбоь ткаое своло по свраолю? Сжолсноти это не павбирит, нжнуы дургие мазмехиы.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории