Как стать автором
Поиск
Написать публикацию
Обновить

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

«Преимущество ее в том, что нам не приходится писать картинку на диск а потому удалять ее. Все происходит, так сказать, «на лету».»

Вообще-то, её никто на диск никогда и не пишет.
В Индии отрисованные картинки записывают на диск, чтобы не забыть.
ну я писал по-первости :-) Потом удалял. Молодой был, глупый…
Обойти можно любую капчу — это только вопрос стоимости.
кмк, буквы очень контрастны к фону, наверное, будет легко отделить друг от друга.
Сами буквы одинаковые, после разбиения на буквы вопрос только в переборе поворотов и сравнения с шаблоном.
Кстати да. Что если сделать переменным размер шрифта в том числе…
А вот в этом и заключается искусство создания капчи — правильно подобрать параметры так, чтобы и человеку было легко, и машина споткнулась.
Вот это действительно интересно и ценно, а то, что вы написали — это только начало.
Всё это конечно хорошо, но только будет очень страшно если капча выйдет на главную. Зато вы сможете проверить скрипт на высокие нагрузки. )
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Цвета, как и символы, случайны. Я если буду использовать это в каком-нибудь проекте, обязательно приделаю кнопочку «Обновить картинку без перезагрузки страницы».
НЛО прилетело и опубликовало эту надпись здесь
Капча ломается в 3 счета. Попробуйте в fine reader или чем-то подобном распознать.
Вообще принцип простой взлома
1) Убрать шумы
2) по одинаковым цветам разделить на буквы
3) по шаблонам выделяются буквы
recaptca не?
а уж сильно глаза режет ваша
Есть масса готовых решений, не вопрос. Но хочется свое. Такой вот я тонкий извращенец :-)
Реальную сложность при разборе капчи представляют только значительные деформации и трудноразделимые «слипшиеся» символы. Игры с цветом, фоновые шумы, и вариации шрифтов это баловство.
если вот тут: MagickAnnotateImage($background,$drawing,($i*30),0,$angle,$r_st); вместо ($i*30) поставить ($i*15), то все символы будут накладыватся друг на друга. Ну или можно увеличить шрифт. Раза в полтора. Только боюсь, что человеку читать это будет нелегко.
Сейчас, кстати, попробуем.
Конечно усложнит.
Любая капча — плохое решение с точки зрения юзабилити. Но, увы, более простого и надежного способа фильтровать ботов пока нет :(
Я как то особо не загоняюсь по капчам, но есть идея — почему бы не сделать её в виде анимированного гифа где будут вращаться объемные символы? С точки зрения распознования человек её определит без проблемм, а вот автоматизированным системам будет гораздо сложнее. При этом мы можем делать объемные буквы довольно читаемыми для человека…
Опа! А ведь и вправду… Надо заняться. Спасибо за идею!
Не забудь потом пива по мылу отправить :))))))
НЛО прилетело и опубликовало эту надпись здесь
В определенном кадре все буквы будут под разными углами, а выяснить в каком же кадре наконец то появится эта буква под таким углом, что б её и распознать…
Вот быстренько набросал — можете прикинуть насколько её сложнее будет распознать чем капчу, предложенную выше…
Ну я совсем не эксперт, особенно по капчам, но в глаза бросается то, что её сложно читать человеку. А компьютерно? Ну разбить на буквы тривиально, т.к. есть последовательность картинок где двигаются только буквы. Вычитаем один кадр из другого и получаем, что двигующиеся буквы светятся. Потом смотрим на букву в последовательности кадров, берем цвет фона и считаем количество точек с этим цветом фона на каждой картинке. Если заметите то только при фронтальном расположении буквы достигается максимальная прозрачность буквы и фона больше всего. Так получим кадры с фронтальным расположением букв, ну а дальше повороты и подбор шаблонов. Для новичка может и не просто но я за одну ночь написал алгорим «зажигания» движущихся объектов на видео и простую очистку от шумов. Ну и мне не нравится её читать, для человека имхо неудобно.

Тут опять вопрос соответствия цены взлома и стоимости результата. Я до сих пор незнаю как можно взломать капчу у Гугла. Хотя там монотонный фон и сами буквы одного цвета. Самая большая проблема это отделить символы, да и символы там искажены, а у вас наоборот отделение символов проходит само собой.
Я бы сказал взломать просто. Шумы выносятся без пролем, буквы все одинаковые, один раз собрать шаблоны того какой шрифт используете, и подбирать можно очень легко. За 2 дня один напишу распозновалку при желании, но желания нет. Советую не только разноразмерные буквы и цифры делать, но добавить шумов на края букв, и использовать несколько шрифтов. Даже 10 разных шрифтов добавят очень много проблем взломщикам. А сосвем круто будет если искажений добавить, волн таких небольших по картинке, тогда банзай будет. Еще можно сделать букву неодинакового цвета. Еще очень важный вопрос, это соотношение стоимости взлома защита и размера выгоды, полученной от взлома. Если это больой проект где много спама, то этого недостаточно, а для блога например вполне хватит.

О еще заметил, у вас порядок перекрытия букв всегда одинаковый, т.е. первая буква всегда на заднем плане, следующая ближе и так далее, это тоже облегчает распознование.

Я это все пишу как имеющий некоторый опыт в написании системы распознавания, и соответственно пишу что усложнит машинное распознование, я думаю что если применить все что я написал для человека тоже будет тяжело читать, так что вам выбирать. Смотрите за баллансом машинной и человеческой сложности распознования.
Спасибо за развернутое объяснение :-)
Конкретно эта капча планируется для блога (движок хочу свой написать), но если мне прийдется когда-нибудь делать капчу для более-менее крупного проекта, я обязательно учту ваши советы. Спасибо!
Если не сложно — прокомментируйте мой вариант капчи… Очень интересно насколько она усложнит распознавание
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации