Хочется какого-нибудь универсального решения, которое позволит резать ботов. Каптчу не хочу. Есть ещё какие-нибудь идеи, которые уже воплощены в жизнь или есть в виде хорошей концепции?
Как вариант: не добавлять и даже не отправлять на модерацию сообщения, содержащие ссылки или в имени, или в тексте сообщения, а так же сообщения, которые состоят только из слова "Спасибо". Много говна отсеит, по себе знаю. ПыСы: Наряду с капчей решило все проблемы .. пока что.
Apple А если я делюсь в комментарии ссылкой на что-то? Это не вариант. Для рунета можно отсеивать ссылки с не .ru доменной зоной, но это тоже корявое решение. Ссылки в имене - да. Но вот глянь у меня на сайте какого вида спам. Там именно бессмысленные сообщения какие-то. Набор символов.
Все комментарии, которые я просмотрел, имеют одну закономерность: содержат ссылки или E-Mail адреса. Вот, например: http://www.akhundzade.ru/full/23 Поэтому запрещать E-Mail адреса и ссылки опять выходит на первый план. Теперь, что делать, если кто-то хочет поделиться ссылкой? Можно ввести какой-нибудь специальный тег, например, [external]link[/external] Ссылка, которая находится в этом тексте будет исключена из проверки, а вернее будет разрешена. Пользователей можно предупреждать простенький мааасеньким сообщением, мол заключайте ссылки в тег, иначе комментарий даже не отправится. Второй вариант, так это доверенным людям разрешать публиковать ссылки, или делать разрешенные зоны. Можно, также, просить (если без тегов), чтобы ссылки начинались как url://link.ru Это только варианты, я вообще запрещаю публикацию ссылок, нафиг оно надо.
Кстати, давным-давно делали такой вариант мы для тупых ботов, как добавление поля: HTML: <input type="text" name="name" class="uName" /> В стилях этому полю задаются параметры невидимости, но оно отображается (HE display: none!). В результате, боты заполняют это поле и на модерацию комент даже не отсылается. Поле должно иметь логическое имя, а настоящее поле может иметь имя anti-bot, на самом же деле оно наманое
Я тоже так сделал, но поле назван country и слелал лог, куда пишется все что вносилось в это поле, очень много отсеивается ботов и много разных стран пишут
Фишка со скрытым полем имеет логику! А что касается JS, то уже не поможет.. проверено. Вешал событие на клик и бестолку, запрос тупо постится на страницу... Так что вариант псевдо-формы может помочь! Что же касается капчи, то она должна работать однозначно на сессиях и по факту поста надо проверять md5 кода, отправленного формой с тем, что хранится в сессии со времени предыдущей генерации. Опять же - никаких подписей вида: kaptcha.php?code=xxx Все значения она должна получать из переменной сессии! Т.е. мы генерим уникальный код и инклудим капчу, после чего отдаем ей в переменной сессии значение кода валидации. Эта капча не ломается ботами, разве что распознается для отображения. Так что думайте кому что ...
Ну мало ли ТС ведь интересовался альтернативными методами, но я предположил, что капча создает проблему не только ее наличием, но, возможно и обходится. По этой причине он захотел ее снести и юзать другие методы, т.к. реально работающее решение не имеет смысла убирать, особенно, если речь идет о спамме. В качестве альтернативы могу посоветовать отдавать форму только зарегистрированным юзерам и также проверять статус юзера по факту поста на сервер, чтобы не прошло без аутентификации. Это решит часть проблем, но боты такое тоже давно научились обходить при желании
Mr.M.I.T. Я, как пользователь, терпеть не могу вводить каптчу. Она меня просто раздражает и бесит... А по поводу скрытых полей - разве боты вводят туда значения если у них display: none, visibility: hidden, type=hidden?
ну это только глупые автоБоты тоесть те боты которые сами настравают форму, а если форму боту будет человек настраивать...
display: none, visibility: hidden, type=hidden это все читается в два счета. Можно попробовать средствами JS собрать поля формы document.write . Только таким образом, чтобы разделить, например, слово input на части и т.д. А вообще, лучше капчи еще не придумали... но она реально иногда раздражает.. для обычного пользователя она означает, что ему не доверяют
Я уже давно себе хочу сделать так: если в текстах формы имеется ссылки или е-мейлы - то после постинга выводится капча и просьбы подтвердить правомерность действий, если капча вводится то форма отсылается обработчику. Таким образом 80% пользователей капчу не увидят, а 100% ботов не пройдут (у них даже нет функционала для двойной отправки формы) Только вот руки никак не дойдут... да и спамят пока мало...
S.t.A.M. Хороший вариант. Как руки дойдут - сделаю. Спасибо Сейчас сделал так, что сообщения с ссылками вообще не проходят. Буду ждать результата