Вы сейчас здесь
«Облако» тэгов
link, small, tagless, tiny, 2003, big, 2008, 2010, январь, декабрь, сентябрь, 2001, 2004, 2002, август, апрель, март, июль, 2009, игры, октябрь, май, июнь, февраль, 2007, ноябрь, img, 2011, quote, wow, huge, блоги, кино, игровой дизайн, ребенок, половой вопрос, технологии, вебдев, lytdybr, фразы, живой журнал, жизнь, язык, яндекс, php, 2006, людишки, 2005, поисковики, software, video, inglish, 2000, смишно, диалоги, музыка, книги, культ личности, дейтинг, политика, интернет, 1999, rss, контент, flash, я, авторские проекты, реклама, прон, next-gen mmo, ореховые скорлупки, сми, js, программирование, fight club, register, социгры, спам, english reviews, американас, потребление, беллетристика, идеи, мое величие, iphone, usability, пидорасты, battle.net, lifestyle, starcraft 2, Тёма, соционика, spectator.ru, британские ученые, развитие, Масква, бабло, литература, фото, mobile, work, болкман, титаны, hard, hobius, mysql, интеллектуальный юмор, хостинг, blogowar.ru, графика, SEO, blogowar, magic, журналистика, злоба дня, религия, стартапы, social, tf2, цитаты, gzip, warhammer, браузеры, велосипед, киви, медикаментоз, общество, оговорки, html, воспитание, мифы, паранойа, письма в редакцию, учеба, 1998, soft, soviet, twdnkumus, глянцевые журналы, монетизация, норкотики, сайты, сиськи, типографика, тьюринг, mongodb, дизайн, железо, живут же люди, лолвут, плагиат, твиттер, тренд, 2012, about, бабушки, вещи, видео, зомбоящик, игрушки, социопатия,
Персональное
об авторе и сайте
мойкруг (резюме)
на G+
порнотумблер (rss)
инстаграм (хипстерские фото)

facebook
twitter

skype: acerbial
gtalk: dmitry.smirnov


C любовью к людишкам™,
♥ 1998 - 2013.

powered by mongodb.



CSS и борьба со спамом

Изящный способ борьбы со спамом веб формах с помощью CSS. Хитрость заключается вот в чем: надо создать фиктивное поле в форме, скрытое с помощью CSS. Человек, пользующийся обычным браузером, это поле не увидит и не заполнит, в отличие от спам-бота, которые в большинстве своем CSS вообще не понимают. А дальше дело техники: серверный скрипт проверяет заполнено ли фиктивное поле и если оно заполнено — дает отлуп. Все просто и изящно, однако если будет применяться массово, то спам-боты научатся таки распознавать CSS и все вернется на круги своя.

Написано вот тут.

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

Я не так давно придумал менее изящный способ: передавать в поле hidden время (timestamp) генерации страници с формой. А потом сравнивать с текущим временем на сервере.

Понятно, что боты будут постить спам, скорее всего, «слишком быстро», не тратя время на набор текста.

Пока не уверен, как будет работать этот способ, надо проверять.

5 лет назад
20
Твой способ уже реализован в некоторых антиспам-плагинах к вордпрессу. Есть боты, которые его обходят. Однако подавляющее большинство ботов таки накалываются.
Спасибо, не знал.
PiLiGRiM
Грамотные боты постят с задержкой, ибо этот способ уже известен :)
Блин. Вырезалось.

Можно использовать JavaScript для того, чтобы отобразить форму. Примерно так:
document.write(’for’+’m ’+’act’+’ion="pos’+’t.php"’);

Ну и так далее.
Хотя этот метод тоже легко обойти.

Centaur
Я модерирую форум на движке phpBB2. Он просит при регистрации указать часовой пояс. Мои боты все как один выбирают из всех самый первый, несмотря на выбранный по дефолту GMT+6. Я добавил GMT-17 и по этому принципу их ловлю, ставлю крестик на лбу и потом все их посты тихо перенаправляю в отдельный раздел-мусорку в качестве вещдоков.
Билейтер
С CSS способ легко обойти. Современные боты работают со сформированными формами (чтобы нельзя было формы делать JavaScript’ом). Мне кажется, скрытые поля они и не будут видеть.
Впрочем, это теория, я не знаю точно, как там те боты работают.
Поле скрыто чисто визуально. Чтобы его обойти, надо парсить CSS. А это не такая тривиальная задача, как парсить JS, например.
Билейтер
Парсить CSS в поисках visible и display — куда проще, чем запускать JS.
Есть и другие методы, помимо visible, display и class=invisiblefield.
У меня уже месяца 4 вполне успешно работает другой способ.

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

Вот, собственно, и всё. Если на сервер не пришел правильный ответ, значит, сообщение является спамом.

Так разговор вообще идет о том, что некоторые боты понимают javascript.
rusan
еще есть вариант. Тоже простой. Пишешь прям в ХТМЛ — сколько будет три плюс два. И проверяешь ответ на 5 или пять. 90% стандартных ботов не работают на этой каптче.
Думаю, что от таких умных ботов, которые парсят javascript, измерение задержки, с которой приходят данные из формы, не спасет.
Врядли какие-либо боты _парсят_ javascript.
Скорее всего они запускают эмулятор браузера и выдерают данные из формы посредством объектной модели.

Тот же компонент TWebBrowser в Delphi. Можно загрузить в него любую страницу и выдрать форму в виде массива. Никакие JS и CSS уже не помогут.

Zv
Помогут.
Можно поле формы с помощью css не скрыть, а отправить в дальний угол страницы, чтобы пользователь его не видел. Скажем, рамку убрать — будет смотреться, как просто текст страницы.
Даже не могу сразу придумать, как с этим ботам бороться.
Причём тут пользователь и видел/невидел.
Есть поле ввода и оно принадлежит определённой форме, пусть оно хоть за пределами экрана.
В этом и суть. Пользователь его не видет и не заполняет. Бот — видет и заполняет.
Дошло.
Ну email, site, name, text — понятно, заполнится.
А что, бот заполняет все левые поля, даже не понимая для чего они?
Есть такая вероятность. Поля к тому же никто не заставляет называть стандартными именами.
Zv
Думаю, если назвать левое поле ’login’ или ’email’ — бот заполнит его с очень и очень большой вероятностью.
http://ajax.asp.net/ajaxtoolkit/NoBot/NoBot.aspx

Там техника с измерением времени между генерацией формы и отправкой запроса используется в числе многих.

Lab
CSS оставляет больше простора для фантазии, поэтому будучи увереным, что человек не станет заполнять поле спрятанное средствами CSS — всех заполнивших можно посылать лесом.

P.S.
А как же с теми, кто смотрит сайт на недобраузерах? Делать приписку: «если вы не бот, не заполняйте это поле»?

steevy
А сейчас уже не работают способы защиты с помощью картинок с циферками ?

Кстати, что нужно было опознать на картинке при регистрации ? :)

Хорошая мысль. Даже зарегистрировался, чтобы сказать об этом.
Вот, кстати, коротенькая заметка о результатах работы упомянутого мной способа защиты от спама:

http://written.ru/blog/2007/08/21/SpamProtection

Раз уж попал сюда опять, с 9 июля благодаря скрытому полю «site» спама не было.
Привет, Anonymous! Чтобы оставлять комментарии, надо авторизоваться.