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

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

На любую популярную капчу и защиту (даже очень крутую) найдется своя отвертка
Любая нестандартная защита (даже будучи не очень сложной) сможет эффективно защищать свой сервис (меняясь время от времени)

У меня все :)
О случайном выборе типа защиты тоже думаю. Скажем, одним капчу показывать, другим — тест на сложение и т.п.
у меня была одна идея: рисовать простейшие буквы разноцветными div с наложением друг на друга через z-index…
но пока не попробовал не могу ручаться за эффективность или оценить идею
как она вам? хотя бы сам принцип разноцветных дивов наложенных друг на друга в таком порядке чтобы в итоге пользователю была видна определенная информация.
скажем, это буква H
example
Мда, с таким подходом придется немало повозиться, чтобы изобразить, скажем, буквы «У» или «З».
этот процесс легко автоматизировать
я скорее любитель, но насколько знаю, спамеры не гнушаются снимать «скрин» капчи перед ее распознаванием, соответственно, я не понимаю смысл, гемороиться со слоями, так как спамер увидит то же что и пользователь… :(
это легко когда знаешь что скринить
можно постараться сделать так чтобы не было возможности точно определить где начинается капча, а где идут ложные дивы
возможно вы правы… :) я ж сказал, любитель я :)
А рядом с формой :)
понятие растяжимое, фишка в том, что у обычной капчи почти всегда есть вычисляемый размер, а у разметки его быть не может, поскольку неизвестно входит ли этот див в капчу или не входит. Фоном может служть как Body так и мелкий див, а может и див на пол страницы…

блин пора делать примеры :)
а вообще, неплохо бы напрячься всем хабра-сообществом да и выкатить антиспам-библиотеку от Хабра
я бы к примеру, мог бы взяться за портирование на jQuery, кто-нибудь prototype сделал или еще какие версии
был бы видимый толк от сообщества
Вот-вот :-)

Смущает лишь то, что может такая фигня случиться: бот рендерит страницу, делает скрин, а уже его распознает :)
это несколько затратнее, неизвестно где делать скрин, в каком месте
можно сделать дивы ловушки, ложные дивы
можно рендерить сумасшедшие буквы
все равно. мне кажется, это лучше чем готовое для анализа изображение

в любом случае, это была та самая идея, которую вы просили :)
Там, где форма будет располагаться :-)
НЛО прилетело и опубликовало эту надпись здесь
при прямой атаке эффективность нулевая, имхо
НЛО прилетело и опубликовало эту надпись здесь
в смысле, когда будут пытаться атаковать именно ваш ресурс
подберут шаблон вашей текстовой капчи, и будут легко решать ваши несложные уравнения
даже если вы сделаете 100 разных вопросов, все равно они все скорее всего будут распознаны
НЛО прилетело и опубликовало эту надпись здесь
подставьте вместо «javascript» слово «спамбот» и убедитесь, что все бесполезно
НЛО прилетело и опубликовало эту надпись здесь
вариант интересный
а что помешает спамботу общаться с сервером выдавая себя за клиентский скрипт?
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Novikov, а вы знаете как работают спам-боты и прочие спамерские программулины? Чтобы успешно бороться со спамом надо знать как работает технология ;) Я вот все подумываю статью об этом написать да руки никак не доходят…
В области автоматического спама мои знания серьезно ограничены и устарели :-)
Ок. Тогда раз уж такой вопрос поднялся я постараюсь в течении пары дней как-то скомпоновать свои знания по этой теме и оформить в статью. Вдруг чем-то помогу :-)
А если проверять, к примеру, события типа onMouseOver? Редкий юзер не проведет мышкой над документом перед тем, как че-нить написать… Правда, остается вопрос насчет без-JSских пользователей, но все же
а что может помешать спамботу сказать серверу, что событие происходило?
Знать какое событие, знать где…
Можно в качестве капчи потребовать щелкнуть по какому-либо куску текста…
если клиентский код будет знать то и спамбот будет знать
Расставить несколько «ложных» областей :)
Блоки могут располагаться друг под другом — какой из них должен быть обработан (к вопросу о z-index)? и т.д.
поймите, клиентский код — это готовый спамбот, делать какие-то ухищрения с манипулированием DOM чаще всего не эффективно
спамбот все повторит
Повторит как? Ну не сможет клиент провести над определенным блоком мышью, а бот смог. Тут его и поймать. Заставить бота сделать лишнее, а не повторить — вот в чем цель.
бот просто не станет ничего проводить, прикинувшись клиентом без мыши :)
если серьезно, все равно наверняка можно будет проанализировать какие блоки смогут генерировать события, а какие — нет
Если спамбот научится полностью повторять/эмулировать действия юзера — он станет юзером.
В нашем случае — надо найти 10 отличий. Чем более разнообразными станут вариации (разные имена блоков, скриптов JS, классов CSS и т.д.), тем сложнее спам-машине все это переварить и распознать.
Это был мой 666-й комментарий o_0
мне кажется, что раз уж и распознавать картинки уже научились, то повторить банальные действия на стороне клиента для спам ботов это как два байта переслать — главное знать алгоритм проверки. поэтому к вам не прорвуться, пока алгоритм проверки человечности в вашем исполнении не будет реализован ботописцами.
Особенно если он на движке браузера сделан.
то, что события обрабатываются на клиенте, а не на сервере )
а спамбот по вашему не клиент?
клиент конечно, но серверу он ничего говорить о событиях не должен и будет.
Мне, кстати, нравятся варианты капчи, где не слово вводить надо, а выделить мышкой, скажем, всех лис на картинке :)
А уж как они понравятся детям :D
кстати, особо продвинутые могут и клавой выделять что-либо
бедные дети африки, они никогда не видели лис :)
зато как разнообразится жизнь у бедных детей Индии и Китая, разгадывающих капчи день и ночь :)
Повторить мышью траекторию движения объекта на флеш-ролике
(или переместить объект по маленькому лабиринту не касаясь его стенок)
GIF наверное лучше и проще
Ради комментария проходить целый квест?)
и так каждый раз :)))))
Еще пара идей. Сделать такую штуку, которая будет спрашивать, например, как зовут автора блога и подобные специфичные вопросы именно для данного блога задавать.

Еще идея — стандартный тест 1+2= поменять на «Сколько ног у двух трехногих собак?» :)
или «Сколько пальцев на 3 руках» или «Ваня купил три яблока, а одно съел, сколько осталось яблок?».

Поможет еще и от тупиц, да и убогие мудофилы, набивающие каменты через спам-биржи, тоже зависнут и ребутнутся :-)
А если «сколько пальцев на руке?» — и картинку из фильма «Брюс Всемогущий», где он с семью пальцами :)
И вообще — смогут ли боты подсчитать количество элементов на картинке?
очень проблематичны становятся капчи, где приходится использовать тот или иной язык, латиница есть на всех компах которые смогли набрать твой урл :), а вот знанием языка люди обладать не обязаны, то есть если это исключительно национальный рессурс, то решается много проблем, а вот…
Если постер из далекой Индии не сможет прочитать текст перед тем, как зафигарить очередную пару урл-камент, то это можно считать дополнительным механизмом защиты :-)
ну я и говорю для национального портала, это даже плюс :))))

преставил себе

«ищу индийцев знающих русский, для набора текста по центу за слово» :)
Задание всегда можно продублировать на English
Брюс Всемогущий тут не при чём.

У Марка Шагала есть такой автопортрет с семью пальцами на руке. Причём, когда его спросили, «почему именно семь», он не смог ответить ни-че-го :)

— С картинками проблема одна — общая. Их нужно готовить вручную, иначе — достаточно пересмотреть все картинки, сделать детектор «какая из», и отвечать на вопросы автоматически станет очень просто…
Динамически генерировать ID полей вряд ли получится, вордпресс к нему привязывается. Пример

<input type=«text» name=«author» id=«author» />

Как только вы поменяете айди, форма перестанет работать.

В то же время, если в wp-includes подправить пару строк, то можно перенастроить нужный айди.

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

Мне кажется, что можно подвесить свою функцию на фильтр, который будет принимать зашифрованные айди полей, а передавать дальше другим функциям движка уже расшифрованные.
Это не лечит проблему, если теория с прямым запросом верна. В этом случае робот как бы не заполняет форму комментариев в нашем привычном понимании. Он сразу сообщает движку комментарий — мол, получите, распишитесь, я это написал вон к той записи. И в этом запросе он как раз и сообщает все те ID, которые даны по умолчанию.

Приведенный вами фильтр включится до этого запроса, и закончит свою работу тоже до. И никак не помешает.

Если у вас есть блог, куда приходит много автоспама, то можно проверить мой метод. А то у меня проверять практически негде.
От прямого запроса можно защититься :)
>Применить защиту с javascript + cookies, подобно той, что в WP-Spamfree сделана.

Помогает, пока нет цели поломать данную защиту.

>Прятать форму со страницы, выводить ее через javascript.

Какая разница, как выводить форму? Спамеры даже не загружают формы часто ;). А если и загружают, то пропарсить форму, будь она хоть в html, хоть js — не проблема.

>Динамически генерировать ID полей, для каждой загрузки страниц свои

Ломается без проблем.

Хорошая защита — премодерация, все остальное ломается на ура, если есть потребность. Поэтому я и противник OpenID и им подобных — чем больше сайтов с однотипной формой авторизации, тем больше вероятность спама.
Добавил топик с бизнес-идеей
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории