Аналог капчи на PHP

Вурдалак

Продвинутый новичок
Картинкой пример?
Даже если картинкой, то учитывая диапазон возможных значений таких простых арифметических выражений, можно 10 раз отправить какое-то число и с большой долей вероятности угадать хотя бы раз.
 

С.

Продвинутый новичок
Да кто ж тебе даст десять раз на одну капчу отвечать?
 

Вурдалак

Продвинутый новичок
А я не говорил, что на одну. Если там число от 1 до 10, то я могу всегда отправлять «5» и в 1 из 10 случаев угадывать.
 

StalkerClasses

Новичок
Если добавить rand - выбора случайного значения формулы и добавить хотя бы 10 формул - уже так быстро не ответите.
 

AnrDaemon

Продвинутый новичок
Диапазон значений любой.
Если будут ломать целенаправленно, прикрутят парсер арифметических выражений (готовых полно), и никаких угадалок не надо будет.
 

Вурдалак

Продвинутый новичок
Угадывать — это в случае картинки. В противном случае да, тупо выполнить выражение, боту это намного проще, чем человеку.
 

fixxxer

К.О.
Партнер клуба
Угадывать — это в случае картинки. В противном случае да, тупо выполнить выражение, боту это намного проще, чем человеку.
Немного подождать, и поменять текст такой "капчи" на eval(что-нибудь). :)
 

fixxxer

К.О.
Партнер клуба
Какого ты высокого мнения о тех, кто пишет парсеры-спамилки, однако. :)
 

Активист

Активист
Команда форума
Самая примитивная , но удобная капча, пожалуй, которую я делал - это капча, на JS, которая от event'a mouse move на блоке (div) с регистрацией выполняла ajax запрос на сервер, получая код (который ранее был записан в сессию) и вставляя его в форму. На этапе првоерки данных, этот код искал в сессии. Если неверно, выдавал обычную капчу. Поскольку продукт эксклюзивный, пока еще боты не одолели. Не спасет конечно, от специального бота. Да и капча не спасет от регистраций ботов, ибо вместо ботов сидят толпы юзверей, зарабатывающие центы на вводе капч. Бот зарегался и пошел. В общем, как не крути, а от спама не избавишься.
 

Активист

Активист
Команда форума
Кстати, кто как решает проблемы SMS доставки, последнее время какая-то засада с ними, то туда не идет, то сюда не идет, гребанная гос.дура.
 

fixxxer

К.О.
Партнер клуба
капча, на JS, которая от event'a mouse move на блоке (div) с регистрацией выполняла ajax запрос на сервер, получая код (который ранее был записан в сессию) и вставляя его в форму
В рекапче сейчас похожее, только не так примитивно, каэш.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
хорошо работают вопросы по теме сайта, например, общая ставка НДС на форуме для бухгалтеров
 

stalxed

Новичок
Если оставлять пустое поле скрытое от пользователя.
Если его заполнил кто-то значит - это бот.
Гениально нет?
Данная защита работает от главного спам бота xrumer(от команды botmaster).
Суть в том, что у них спамилка работает используя сокеты, а не движок браузера.
Т.е. она спокойно набирает 200-1000 потоков, и в случае всего 10 серверов может пройти чуть ли не вообще весь интернет.
В этой спамилке главное, что потрачены сотни тысяч долларов на распознаватели картинок каптч.
Читаю их закрытый форум, щас она как раз занимаются распознаванем текстовых каптч, что-то типо CLOUD текстовых каптч, самообучаемую делают.
Так как эта спамилка использует сокеты, а не движок браузера, то она и не может распознать, какое поле скрыто, а какое нет.
Это море геморроя грузить css файлы, их анализировать и прочее.

Картинки тоже не выход, сейчас сервисов типа антикаптчи море, где миллион дешевых рабочих разгадывают каптчи.

Всякие хитрые JavaScriptы не смогут устоять против Human Emulator и ZennoPoster.

Я по этой теме бакалаврский диплом писал.
Там я предложил в качестве решения генерировать каптчу при помощи CSS.
Вот цитата с дипломного проекта:

Главным элементом CssCaptcha являются шрифты, которые содержат коды символов.

Например, символ «1» представляет из себя в ASCII графике:

110
010
010
111

В классе шрифта этот символ хранится в виде кода:

array(
array(TRUE, TRUE, FALSE),
array(FALSE, TRUE, FALSE),
array(FALSE, TRUE, FALSE),
array(TRUE, TRUE, TRUE)
);

Это двухмерный массив boolean значений. Тип boolean выбран вместо integer по причине того, что он занимает меньше места в оперативной памяти. Т.е. каждый символ представляет из себя ряд пикселей – минимальных графических элементов, значение TRUE в коде символа обозначение, что пиксель является пикселем шрифта, а FALSE – пикселем фона.

В параметрах шрифта указывается значение zoom – сколько квадратов содержится в пикселе и размеры таких квадратов.

В html коде квадрат представляет из себя элемент <div>. Элемент <div> является блочным элементом и предназначен для выделения фрагмента документа с целью изменения вида содержимого. А расположение, цвет, размер и другие параметры отображения множества сгенерированных элементов <div> задаются с помощью внешней таблицы стилей, а для тега div добавляются атрибут class с именем селектора.

В проекте использован стандарт программирования один класс – один файл. Шрифт представляет собой дочерний класс абстрактного класса CssCaptcha_Font_Abstract. Тоесть добавление нового шрифта существенно не затронет старый код. Нужно только добавить файл шрифта, и добавить код, создающий шрифта в фабрике шрифтов CssCaptcha_Font_Factory.
Пример: http://stalxed.ru/csscaptcha/ (сорцы https://github.com/stalxed/csscaptcha).
Плюс защита от движков браузеров и ботов на сокетах.
Т.е. тупо послать в антикаптчу не получится.

В вкратце, от профи защиту не сделать.
Главное обеспечить защиту от:
1) Неквалифицированных любителей поспамить, скачавших Human Emulator и Zenno Poster. Защита от них нужна так как их много.
2) Неквалифицированных любителей поспамить, осиливших curl.
3) От программы xrumer.
В принципе этого более чем достаточно.
 
Последнее редактирование:

stalxed

Новичок
Самая примитивная , но удобная капча, пожалуй, которую я делал - это капча, на JS, которая от event'a mouse move на блоке (div) с регистрацией выполняла ajax запрос на сервер, получая код (который ранее был записан в сессию) и вставляя его в форму.
Школьник, который скачал Human Emulator или ZennoPoster пройдёт эту каптчу и даже не заметит, что была защита.
 

stalxed

Новичок
Кстати, кто как решает проблемы SMS доставки, последнее время какая-то засада с ними, то туда не идет, то сюда не идет, гребанная гос.дура.
Уже есть сервисы предоставляющие приём sms по API:
1) Получили sms номер по API.
2) Зашли туда, куда хотим спамить, ввели номер.
3) Опрашиваем по API пришло ли SMS, если пришло то по API получаем код, вводим его в форму.
4) Бинго.
 

AnrDaemon

Продвинутый новичок
Я по этой теме бакалаврский диплом писал.
Там я предложил в качестве решения генерировать каптчу при помощи CSS.
Вот цитата с дипломного проекта:

Тип boolean выбран вместо integer по причине того, что он занимает меньше места в оперативной памяти.
 
Сверху