Comments 117
а как насчет капчи? после отправки мессажа сбрасывать флаг наличия капчи в сессии - посетител получает сообщение "Вы ввели неверный код"
+6
Согласен с вами. Пропустил, допишу.
+1
Дописал, спасибо :)
0
Ничего себе :)
На такую тему и такая объемная, серьезная статья.
Спасибо!
На такую тему и такая объемная, серьезная статья.
Спасибо!
0
Кстати, о капчах. Одно время "администрировал" спортивный форум. На него в один прекраный момент начали рушиться боты, регистрироваться и постить спам. Учитывая весьма небольшой доступ к инструментам администрирования сделал следующее:
1) Создал поле в форме регистрации "В каком году Вы начали играть".
2) Сделал его обязательным
3) Ограничил ввод четырехзначными числами.
Больше ботов не было.
1) Создал поле в форме регистрации "В каком году Вы начали играть".
2) Сделал его обязательным
3) Ограничил ввод четырехзначными числами.
Больше ботов не было.
+2
Способы про cookie и JavaScript (AJAX) лучше отбросить - дубовые браузеры все ж попадаются...
Редирект тоже не спасет от Робота.
Остается капча и БД...
Кстати, можно добавить протоколирование IP и разрешить отправлять запрос с интервалом, скажем, не менее 1 минуты. Это можно реализовать в сессии
Редирект тоже не спасет от Робота.
Остается капча и БД...
Кстати, можно добавить протоколирование IP и разрешить отправлять запрос с интервалом, скажем, не менее 1 минуты. Это можно реализовать в сессии
+5
Вариантов на самом деле тьма, буду стараться пополнять. Спасибо за помощь.
0
Угу, их тьма, а если предлагать варианты, которые вообще проблемы не решают, то их ещё больше будет.
А таковыми я бы назвал 1, 2 и 4. Ибо они обходятся скриптом в 20 строк, причём, без каких либо глубоких знаний. А первая предложенная форма в варианте 1 с сайта roscripts так вообще отправляется сколько хочешь раз путём простого нажатия на Ernter, то есть на 2 клика меньше чем предусматривала описанная выше "автоматизация".
А таковыми я бы назвал 1, 2 и 4. Ибо они обходятся скриптом в 20 строк, причём, без каких либо глубоких знаний. А первая предложенная форма в варианте 1 с сайта roscripts так вообще отправляется сколько хочешь раз путём простого нажатия на Ernter, то есть на 2 клика меньше чем предусматривала описанная выше "автоматизация".
+1
А какая "автоматизация" описана выше?
0
Когда читал, то имел в виду это "Как вы сами понимаете, простое нажатие кнопки F5 на клавиатуре снова отправит вам письмо. Ну а автоматизировать данный процесс, повторюсь, совсем не сложно."
Сейчас внимательно прочитал смысл фразы. Понял, что она двухсмысленна. Я её прочитал как "Ну а автоматизировать нажатие на F5, повторюсь, совсем не сложно."
Сейчас внимательно прочитал смысл фразы. Понял, что она двухсмысленна. Я её прочитал как "Ну а автоматизировать нажатие на F5, повторюсь, совсем не сложно."
0
UFO just landed and posted this here
Как-то пришло с формы обратной связи порядка двухсот писем спама. За небольшой промежуток времени. Все письма были отправлены с разных IP, но одним ботом.
+1
Кроме того, не забывайте, что есть локальные сети с одним внешним IP. И не исключена вероятность того, что не 10 разрешенных Вами, а 11 пользователей в сутки из этой сети захотят отправить сообщение. Так что бан по IP - это далеко не панацея.
0
Эээ, я не понял, варианты с 1-го по 4-ый зачем? Кто-то будет сидеть и 60 часов тыкать в браузере F5, вместо того, чтобы за 10 секунд написать скрипт с зацикленным вызовом curl? Особенно умиляют варианты с куками и редиректами. Какая наивность!
Всю статью можно свести к двум словам: "IP, капча". Всё. Остальное - бесполезный информационный мусор, да еще и с картинками зачем-то.
Валяйте, минусуйте.
Всю статью можно свести к двум словам: "IP, капча". Всё. Остальное - бесполезный информационный мусор, да еще и с картинками зачем-то.
Валяйте, минусуйте.
+29
Вы прочли, что я написал, или нет? Про 60 часов тыкать F5 - это ересь, и в таком ключе я ничего не писал.
0
Писал вам длинное сообщение, а браузер, как назло, вылетел, не выдержав моего раздражения.
Вкратце: вы описываете отправку путем нажатия F5, приводите картинку браузера - зачем? Вы вспоминаете про автоматизацию процесса, но слабо представляете как это происходит. Скрипт плевать хотел на ваши куки и редиректы, он даже не загружает страницу, которую сервер ему выдает в ответ на запрос POST. Записывать в БД - плохая идея, база забьет место на хостинге и весь сайт остановится. Все сообщения можно делать с разным случайным текстом, проверка сообщений на одинаковость - ерунда.
И уберите из текста "дерби" и 3 глагола с лишним мягким знаком.
Вкратце: вы описываете отправку путем нажатия F5, приводите картинку браузера - зачем? Вы вспоминаете про автоматизацию процесса, но слабо представляете как это происходит. Скрипт плевать хотел на ваши куки и редиректы, он даже не загружает страницу, которую сервер ему выдает в ответ на запрос POST. Записывать в БД - плохая идея, база забьет место на хостинге и весь сайт остановится. Все сообщения можно делать с разным случайным текстом, проверка сообщений на одинаковость - ерунда.
И уберите из текста "дерби" и 3 глагола с лишним мягким знаком.
+6
Конечно! Однако пункт 3 я всё-таки бы не сбрасывал со счетов, разумеется как дублирование сообщений в почту. Обойти ограничение по ip при желании можно. И искать в куче мусора нужное письмо будет довольно сложно. Да и почтовик может начать брыкаться. База всё-же удобнее и надёжней.
0
а кстати что бы убить все письма с фидбэка можно было бы просто отсортировать письма по отправителю и убить всю пачку. и времени убито былобы значительно меньше:) но йет так, к слову)
0
дабы избежать F5, как правило ставят внутри реврайт руль на ту же страницу, только с #message
правда, эта страница загружается заново и необходимо каким-либо образом помнить о том, что в предварительной загрузке было совершено.
правда, эта страница загружается заново и необходимо каким-либо образом помнить о том, что в предварительной загрузке было совершено.
0
Куки?
0
не просто "как всегда" после обработки поста редиректить куда нужно?
0
все связанное с ф5 это бред. веб-программист, который после _любого_ пост запроса не отдает редирект через header location, профнепригоден.
а от спам-скрипта, занимающего от 2 до 10 строк в зависимости от сложности "защиты", поможет только капча.
вот более интересная тема - это рассылка спама через фидбэк-формы, путем инъекции заголовков (пример: subject=\r\nCc: user@aol.com\r\n). в связи с обилием "похапе-программистов", пишущих что-то вроде mail('my@mail',$_POST['subject'],...) это уже довольно распространенная практика.
а от спам-скрипта, занимающего от 2 до 10 строк в зависимости от сложности "защиты", поможет только капча.
вот более интересная тема - это рассылка спама через фидбэк-формы, путем инъекции заголовков (пример: subject=\r\nCc: user@aol.com\r\n). в связи с обилием "похапе-программистов", пишущих что-то вроде mail('my@mail',$_POST['subject'],...) это уже довольно распространенная практика.
+3
кто не проверяет, что получает - также профнепригоден.
0
ха!
посмотрел и понял, что у меня во всех формах всегда заголовок стандартный, заданный заранее - для удобства визуального восприятия, а вся получаемая инфа, в т.ч. контакты - в теле письма )))
посмотрел и понял, что у меня во всех формах всегда заголовок стандартный, заданный заранее - для удобства визуального восприятия, а вся получаемая инфа, в т.ч. контакты - в теле письма )))
0
а можно про профнепригодность поподробнее, да с аргументами? а то пока что это выглядит бредом.
ну и вы, конечно же, профпригодны, правда? ))
ну и вы, конечно же, профпригодны, правда? ))
0
Ну, помните, миркосовты рассылали бесплатные диски с сервиспаком для хп? Вот там и был пример профнепригодности - заполняешь форму один раз, сабмитишь, потом Ф5 пока не надоест и получаешь потом по почте пачку дисков. Где-то тогда проскакивала история про одного чудака, которому не лень было тыкать на кнопку очень много раз и его фотка с несколькими сотнями этих дисков. Уж не знаю что он с ними потом делал.
Это реально работало - я раз пять ткнул, пять дисков и получил. Что удивительно, все диски в одном почтовом отправлении, то есть кто-то все заказы потом сливал в один. Конечно, это был верх профпригодности :).
Это реально работало - я раз пять ткнул, пять дисков и получил. Что удивительно, все диски в одном почтовом отправлении, то есть кто-то все заказы потом сливал в один. Конечно, это был верх профпригодности :).
+2
Сделал на своих сайтах простенькую проверку, которая пока что справляется со спамом: добавил в форму тестовое поле с CSS-классом, которому в таблице стилей задал "display: none;". В скрипте, обрабатывающем отправку сообщения, сделал проверку на это поле — если переменная имеет ненулевое значение, значит письмо является спамом, ибо человек в невидимое поле значение ввести не может.
0
помоему там и type="hidden" можно просто применить, однако если отправлять скриптом - пофигу, что угодно любому полю можно присвоить.
в случае CSS - можно отключить стили вовсе.
в случае CSS - можно отключить стили вовсе.
0
> однако если отправлять скриптом - пофигу, что угодно любому полю можно присвоить
Не совсем понял, что ты этим хотел сказать? О том и речь, что скрипт чаще всего заполняет ВСЕ поля формы. В моём случае даже те, которые не надо.
Не совсем понял, что ты этим хотел сказать? О том и речь, что скрипт чаще всего заполняет ВСЕ поля формы. В моём случае даже те, которые не надо.
0
очень просто.
серверный скрипт.
если твой алгоритм виден на клиенте - не имеет значения, каков он, спасёт только от неумелых шалунов.
серверный скрипт.
если твой алгоритм виден на клиенте - не имеет значения, каков он, спасёт только от неумелых шалунов.
0
Серьёзные дяди с формой пока не баловались. Неумелые шалуны, да и только...
Написал же, "пока что справляется".
Написал же, "пока что справляется".
0
Спасает не только от шалунов, основной спам на блоги идет с ботов которые либо сами ищут цель, либо работают по базе целей.
Такая простейшая проверка отсекает практически все стандартные боты, мне кажется, им просто смысла нет париться с проверкой стилей поскольку целей тысячи. Есть и такие которые проходят, но после создания небольшого списка спам фраз и ip они отрезаются. Получается вполне пригодное, но не универсальное решение.
Проблем больше с биоботами, от которых защититься несколько проблематичнее.
Такая простейшая проверка отсекает практически все стандартные боты, мне кажется, им просто смысла нет париться с проверкой стилей поскольку целей тысячи. Есть и такие которые проходят, но после создания небольшого списка спам фраз и ip они отрезаются. Получается вполне пригодное, но не универсальное решение.
Проблем больше с биоботами, от которых защититься несколько проблематичнее.
0
массовые спамы по гостевым и блогам меня мало интересуют .эти вообще редко проскакивают где либо.
а вот что уже касается индивидуально направленного скрипта, после изучения сайта - это то вот и есть проблема.
и я не считаю проблему решённой, пока есть хоть один вариант обойти защиту.
н еимеет значения придумал я или кто-то этот вариант или нет, смог реализовать или нет - меня лично она будет сверлить до последнего, пока не будет решена.
а вот что уже касается индивидуально направленного скрипта, после изучения сайта - это то вот и есть проблема.
и я не считаю проблему решённой, пока есть хоть один вариант обойти защиту.
н еимеет значения придумал я или кто-то этот вариант или нет, смог реализовать или нет - меня лично она будет сверлить до последнего, пока не будет решена.
0
Из опыта скажу что капча тоже не спасает, если задействован человеческий фактор.
Самый оптимальный вариант генерировать UID формы и хранить его в хешфайле на сервере со сроком жизни скажем 15 минут.
Как только произошел пост - хеш грохается и повторного поста с таким UID уже не будет. Подробно есть здесь, и ещё полезное здесь.
Самый оптимальный вариант генерировать UID формы и хранить его в хешфайле на сервере со сроком жизни скажем 15 минут.
Как только произошел пост - хеш грохается и повторного поста с таким UID уже не будет. Подробно есть здесь, и ещё полезное здесь.
0
УИД формочки как раз полезен для предотвращения от повторной отправки данных при заполнении формы в браузере. Как уже сказали, никто не будет ночь напролет давить F5, а для работа не проблема получить HTML-код формы, выдрать УИД и запостить данные.
P.S.
Ссылки одинаковые.
P.S.
Ссылки одинаковые.
0
Не хочу вас не в чём убеждать, но ссылки которые я привёл вы либо не прочитали, либо читали невнимательно. Вторая ссылка описывает алгоритм действенного метода защиты формы.
Что до общей темы, спаммеры тоже читают ваши топики :)
Что до общей темы, спаммеры тоже читают ваши топики :)
0
> Вторая ссылка описывает алгоритм действенного метода защиты формы.
еще раз: ссылки одинаковые.
еще раз: ссылки одинаковые.
+1
сори ошибочка http://www.parser.ru/examples/antispam/
0
адреса ссылок совпадают. но за задание направления поиска спасибо
0
Вот ещё неплохая реализация.
0
На самом деле решение очень простое.
Панацея - таймауты.
Формой обратной связи на сайте с одного и того же IP в течение суток редко пользуются дважды. Ещё реже - большее количество раз. Можно просто выставить таймаут после первого сообщения полчаса, после второго - 6-12 часов.
Панацея - таймауты.
Формой обратной связи на сайте с одного и того же IP в течение суток редко пользуются дважды. Ещё реже - большее количество раз. Можно просто выставить таймаут после первого сообщения полчаса, после второго - 6-12 часов.
+1
А с прокси это не пройдет
0
по моему это первая по-настоящему здравая мысль из всех тех, что здесь уже написали
0
Скорее после первого сообщения таймаута не надо, потому что нормальный пользователь может прислать небольшое дополнение к своему предыдущему сообщению. Ну, забыл что-то, бывает. А после второго сообщения - да, большой таймаут.
+1
это бред, а как быть клубам, или конторам которые с 1-го IP ходят?
0
Я вот думая в одном из проектов убрать капчи с форм комментов. Неправильно это — пользователь должен оставлять сообщения, а не доказывать, что он не робот. Защиту хочу сделать на основе бейсовского алгоритма. Как защита от спама в рекламых объявлениях технология хорошо себя зарекомендовала, сейчас есть желание проверить на комментариях.
0
А что за алгоритм? В гугле ничего внятного не нашёл.
0
Ну грубо говоря черный и белый список слов. Сперва обучаемся, ручками говорим, что вот это комментарий хороший, а вот этот плохой. В итоге получает базу слов с весом каждого слова. Потом, после обучения, анализируем слова в комментарии и исходя из общего веса всех слов в комментарии решаем является он спамом или нет.
0
Нужно уметь искать
http://ru.wikipedia.org/wiki/Теорема_Байеса
Дальше в гугле по словам "Байес спам" находится несколько тысяч ссылок
http://ru.wikipedia.org/wiki/Теорема_Байеса
Дальше в гугле по словам "Байес спам" находится несколько тысяч ссылок
0
Имхо, слишком по-извращенски.
0
В дополнении MODx по управлению формами (eForm) изначально встроена проверка на возможную повторную отправку (для этого есть специальное контрольное поле, которое содержит код для проверки). То есть банальный F5 не прокатывает однозначно. Но это фактически не мешает организовать две независимые отправки. Из прочих замеченных моментов.
1) Содержимое спама все же разное, поэтому хранить хэши писем не выход однозначно.
2) Письма отсылаются не за раз пачкой, а с временными промежутками (несколько часов, день, два), поэтому всякие таймауты не спасут.
Нужна однозначно капча. Причем грамотная. На сколько я понимаю, капча Гугла (ветер в шрифте, затрудняющий выделение одного символа) считается пуленепробиваемой :-)
1) Содержимое спама все же разное, поэтому хранить хэши писем не выход однозначно.
2) Письма отсылаются не за раз пачкой, а с временными промежутками (несколько часов, день, два), поэтому всякие таймауты не спасут.
Нужна однозначно капча. Причем грамотная. На сколько я понимаю, капча Гугла (ветер в шрифте, затрудняющий выделение одного символа) считается пуленепробиваемой :-)
0
Самое главное не делать как mail.ru
Это же похлеще взятия интеграла :-D
http://win.mail.ru/cgi-bin/signup
Это же похлеще взятия интеграла :-D
http://win.mail.ru/cgi-bin/signup
+1
Недавно читал, что капча Гугла уже не такая пуленепробиваемая - вскрывается каждая 5-я.
0
Кстати, в одном блоге поставил ajax reply для комментариев - ни одного спам-комментария не видел с тех пор :)
Хотя явно для спама регистрируется большое количество ботов.
Хотя явно для спама регистрируется большое количество ботов.
0
Очень удобно получать обратную связь с сайте не на почту, а в RSS.
+1
UFO just landed and posted this here
хм любая картинка, которая показывается - уже как-то распознана до нас для проверки вводимого слова. Они их уже давно распознали)
0
на сайте, вот тут, подробно описан алгоритм: человеку для распознавания представляется капча составленная из 2-х элементов: искуственно искажённая и фрагмент, нераспознанный системой OCR. если человек распознаёт первую часть, то считается, что он как-то распознал и вторую. решение о корректности распознавания второй части принимается по рейтингу совпадений (в результате нескольких попыток разных людей).
+1
Хоспади... понаписывали тут такого...
Толковая капча, и редирект - все, что нужно. Зачем выдумывать велосипеды на квадратных колесах?
Толковая капча, и редирект - все, что нужно. Зачем выдумывать велосипеды на квадратных колесах?
0
Бред какой-то, не судьба не вешать на нормальную почту форму обратной связи,
а создать отдельный ящик и сразу нет проблем пропустить важное письмо от начальства и только небольшой шанс от заказчика (да и то только нового, который будет пользоваться злощастной формой).
а создать отдельный ящик и сразу нет проблем пропустить важное письмо от начальства и только небольшой шанс от заказчика (да и то только нового, который будет пользоваться злощастной формой).
+1
Пользуйтесь Akismet. Есть хороший API. И бесплатно.
0
насчёт редиректа - бывает так что он не нужен или не стоит изгаляться с ним. Т.е. данные обработаны, всё занеслось - получите спасибо, а не редирект на слово спасибо. Способы 3 и 4 тоже обходимы. А вот капча... Капча это капча и с ней уже ничего не поделаешь. Цифровые чтобы прочитать - придётся очень умного робота писать для различия. Да и сейчас уже приходят к капчам вида "нажмите это, сочитайте это".
0
Вы случайно не Владимир из транспортной компании? ( http://habrahabr.ru/blog/spam/37816.html ) :)
+2
Использую формы с тупым вопросом в конце, вроде "Как звали Ивана Грозного?" и т.п. Помогает безотказно.
0
Про Каптчу на последнем РИТе говорили на семинаре про юзабилити: "Простая взламывается, а сложная - сложна самому посетителю. Не стоит использовать Каптчу." На очевидный вопрос, что же делать со спамом, лектор сказал: "не морочьте голову, всё это решается техническими способами".
Программист _должен_ построить защиту от агрессивного дурака. Любая форма без защиты - это не форма, а сырая заготовка.
Решать проблему через БД - оптимально, имхо. Хранить в отправляемых сообщениях параметры отправителя (ИП, браузер и т.п.). И на уровне триггеров внести запрет для записи дубликатов, либо часто отправляемых, либо в большом количестве отправляемых с одной подсети и т.п.
Триггеры фильтруют, а скрипты по крону отфильтрованное отправляют на почту.
Программист _должен_ построить защиту от агрессивного дурака. Любая форма без защиты - это не форма, а сырая заготовка.
Решать проблему через БД - оптимально, имхо. Хранить в отправляемых сообщениях параметры отправителя (ИП, браузер и т.п.). И на уровне триггеров внести запрет для записи дубликатов, либо часто отправляемых, либо в большом количестве отправляемых с одной подсети и т.п.
Триггеры фильтруют, а скрипты по крону отфильтрованное отправляют на почту.
0
я вот тут подумал, но в несколько другом направлении... Есть форма коментариев, защищена капчей, нельза ли сделать так чтоб после первого удачного ввода капчи в кукисах или в сесии прописывалось чтото вроде captch=off и на протежении дня следующие комментарии можно вводить без капчи...
0
"атака" через F5... конечно, повеселил автор :) соответственно, все его методы, кроме капчи - от реальной атаки вообще никак не спасают (ну способ с базой спасает почтовый ящик, но как защитить саму базу?)
0
Пожалуйста, читайте внимательней.
Я не предлагаю атаковать через F5.
Я не предлагаю атаковать через F5.
0
ну тогда объясните - от чего защищают способы 1-4?
способ 1: улучшает юзаблити, не спасает от атаки
способ 2: улучшает юзабилити (конечно, редиректить нужно в хедере), не спасает от атаки
способ 3: ухудшает юзабилити на стороне адресата, облегчает задачу ДОС-атаки на сервер
способ 4: ухудшает юзабилити, не спасает от атаки
способ 5: ухудшает юзабилити, сильно затрудняет атаку
делаю вывод, что содержимое поста не соответствует заголовку
способ 1: улучшает юзаблити, не спасает от атаки
способ 2: улучшает юзабилити (конечно, редиректить нужно в хедере), не спасает от атаки
способ 3: ухудшает юзабилити на стороне адресата, облегчает задачу ДОС-атаки на сервер
способ 4: ухудшает юзабилити, не спасает от атаки
способ 5: ухудшает юзабилити, сильно затрудняет атаку
делаю вывод, что содержимое поста не соответствует заголовку
0
Редирект как раз юзабилити улучшает. Ибо если я нормальный человек, отправил форму и нажимаю F5 - наверняка я не хочу отправить точно такую же форму еще раз. Очень справедливо для любых форумов, гостевых и книг и т.п. Только я бы делал через заголовки (в php header('location: ......'); )
От атаки не спасёт. :) Тут только капча и база данных.
От атаки не спасёт. :) Тут только капча и база данных.
0
Для противников капчи:
Можно сделать как сделал гугл в гмейл. Если несколько раз вводишь не правильно логин и/или пароль, вываливается капча.
В нашем случае можно сделать так - первый раз отправляеться на мыло. Айпи адрес заноситься в сессию/куки/базу. Если человек(бот). Если человек(бот) попытаеться зайти на страницу для отправки сообщения еще раз уже выводиться капча. В итоге мы получим 1 нежелательно письмо от одного айпишника. Можно пойти дальше, определять бота заранее. Выводить невидемое поле в форму, которое человек не под каким предлогом не смог бы заполнить, так как просто ее не видит, а бот может, поэтому фильтруем эти сообщения. Защита работает только в том случае, если спамеры не хотят заспамить конкретно ваш ящик, а если хотят нам поможет способ с капчей описаный выше.
Можно сделать как сделал гугл в гмейл. Если несколько раз вводишь не правильно логин и/или пароль, вываливается капча.
В нашем случае можно сделать так - первый раз отправляеться на мыло. Айпи адрес заноситься в сессию/куки/базу. Если человек(бот). Если человек(бот) попытаеться зайти на страницу для отправки сообщения еще раз уже выводиться капча. В итоге мы получим 1 нежелательно письмо от одного айпишника. Можно пойти дальше, определять бота заранее. Выводить невидемое поле в форму, которое человек не под каким предлогом не смог бы заполнить, так как просто ее не видит, а бот может, поэтому фильтруем эти сообщения. Защита работает только в том случае, если спамеры не хотят заспамить конкретно ваш ящик, а если хотят нам поможет способ с капчей описаный выше.
0
UFO just landed and posted this here
Блокировать два сообщения подряд по IP - это не корректно. Если кто-то хочет написать PS или что-то добавить к письму, это уже будет невозможно благодаря вашей защите.
Достаточно поставить капчу - со всеми остальными мерами не согласен. Не буду повторяться, так как они уже были раскритикованны выше.
Спасибо за статью и удачи в борьбе с гнусными спамерами :)
Достаточно поставить капчу - со всеми остальными мерами не согласен. Не буду повторяться, так как они уже были раскритикованны выше.
Спасибо за статью и удачи в борьбе с гнусными спамерами :)
0
>Ajax.Form.Mootools - [Описание + Демо]
спасибо за эту линку! очень замечательный ресурс!!
спасибо за эту линку! очень замечательный ресурс!!
0
Я вот только одного не пойму - какой смысл присылать спам через форму сообщений?
0
А я не понимаю - зачем светить РАБОЧИЙ е-майл?
Неужели нельзя завести отдельный только для формы сообщений?
Неужели нельзя завести отдельный только для формы сообщений?
0
Еще вариант: На стороне сервера создается сессионная переменная, которая прибавляется к именам полей форм.
0
именно так делается в рейлз 2.0, если форма старая вываливается сообщение. token - меняется
через некоторое время.
через некоторое время.
0
Мы добавляли session.id и вполне успешно :)
Главное, не придавать элементам формы в коде никакой уникальности, кроме name, иначе бот легко обучаем находить нужное поле без использования name. Также можно произвольно менять местами поля формы в html, а визуальное позиционирование задавать через css.
В этом случае у бота один вариант - заполнить все найденне инпуты наобум и сабмитить форму.
Здесь для надежности можно добавить несколько фейковых полей, не визуализируемых у пользователя, но заполнение которых воспринимается сервером как действие бота.
Кто-нибудь видит в этом минусы, кроме плясок с бубном для разработчика?:)
Главное, не придавать элементам формы в коде никакой уникальности, кроме name, иначе бот легко обучаем находить нужное поле без использования name. Также можно произвольно менять местами поля формы в html, а визуальное позиционирование задавать через css.
В этом случае у бота один вариант - заполнить все найденне инпуты наобум и сабмитить форму.
Здесь для надежности можно добавить несколько фейковых полей, не визуализируемых у пользователя, но заполнение которых воспринимается сервером как действие бота.
Кто-нибудь видит в этом минусы, кроме плясок с бубном для разработчика?:)
0
Прежде всего, забудьте о браузерах. Спамеры посылают прямые HTTP-запросы пачками через специально написанные проги и им пофигу браузеры с их F5 и даже F13:). Не нужна для этого никакая Опера. Функционал нужно реализовать ТОЛЬКО НА СТОРОНЕ СЕРВЕРА.
Во-первых, это тесты на человечность. Если уже делаем капчу, то стоит добавить к ней звуковой вариант, о чем уже говорилось на хабре.
Во-вторых, тайм-аут. Можно сделать его гибким (2 сообщения в 10 мин, 3 сообщения в час и т. д.).
В-третьих, это фильтры. Если в форме на сайте не предусмотрена возможность вставки картинок - то любые сообщения с графикой сразу же убиваем. Большая часть остального фильтруется с помощью регэкспов (viagra, v1@gr@ и т.д.).
Как действуют спамеры? Сегодня уже известно, что они перекладывают разгадку капч на "леммингов", за деньги. Логично, что по мере фильтрации целевыми серверами массовых запросов с одного IP спамеры и рассылку перекладут на плечи леммингов, то есть лемминг должен будет скачать программку с базой сайтов и скриптов для подхода к ним, которая после разгадки капчи будет слать адресату спам, укладываясь в тайм-аут, с IP-шника лемминга. Для учета и контроля капча вместе с отгадкой передается спамеру. Но! при таком методе добросовестный лемминг может скачивать и разгадывать капчи, отправляя их спамеру для контроля, но не отправляя сообщений жертвам - и спамер не сможет это проконтролировать! Еще и других леммингов подобьет на это, а реализовать подобный фильтр можно с помощью обычного файрвола.
Таким образом получается, что залогом существования и процветания спамеров и прочей нечистой силы интернета является:
1) массовая компьютерная неграмотность пользователей, приводящая к заражению их ботнет-вирусами (классический спам, DDoS);
2) массовое желание заработать на тупой и в общем-то дешево оплачиваемой РАБоте леммингами (и отсутствие мозгов для более экологичного и выгодного их применения);
3) гражданская пассивность этих самых леммингов, неосознание последствий своих действий (чему они своими действиями способствуют).
И спам (вместе с вирусами, DDoS-атаками и т. д.) из технической проблемы в конечном итоге превращается в социальную. Спам существует потому, что мы все позволяем ему существовать. Посмотрите, что происходит при реализации всех технических средств. Владелец сайта предоставляет каждому пользователю-человеку возможность один раз высказаться (отслеживая по IP, времени и капче). Несознательный пользователь же продает свое слово спамеру, за доли цента, и вместо полезной обратной связи несет сайтовладельцу рекламный мусор. Чтобы бороться с этим, нужны не только технические методы, но и просвещение пользователей, и предоставление им альтернативных более экологичных и выгодных способов заработать. Спам - это вопрос экологии: важно не только заводские трубы фильтровать, но и чтобы рядовые юзеры налево и направо не сорили.
Во-первых, это тесты на человечность. Если уже делаем капчу, то стоит добавить к ней звуковой вариант, о чем уже говорилось на хабре.
Во-вторых, тайм-аут. Можно сделать его гибким (2 сообщения в 10 мин, 3 сообщения в час и т. д.).
В-третьих, это фильтры. Если в форме на сайте не предусмотрена возможность вставки картинок - то любые сообщения с графикой сразу же убиваем. Большая часть остального фильтруется с помощью регэкспов (viagra, v1@gr@ и т.д.).
Как действуют спамеры? Сегодня уже известно, что они перекладывают разгадку капч на "леммингов", за деньги. Логично, что по мере фильтрации целевыми серверами массовых запросов с одного IP спамеры и рассылку перекладут на плечи леммингов, то есть лемминг должен будет скачать программку с базой сайтов и скриптов для подхода к ним, которая после разгадки капчи будет слать адресату спам, укладываясь в тайм-аут, с IP-шника лемминга. Для учета и контроля капча вместе с отгадкой передается спамеру. Но! при таком методе добросовестный лемминг может скачивать и разгадывать капчи, отправляя их спамеру для контроля, но не отправляя сообщений жертвам - и спамер не сможет это проконтролировать! Еще и других леммингов подобьет на это, а реализовать подобный фильтр можно с помощью обычного файрвола.
Таким образом получается, что залогом существования и процветания спамеров и прочей нечистой силы интернета является:
1) массовая компьютерная неграмотность пользователей, приводящая к заражению их ботнет-вирусами (классический спам, DDoS);
2) массовое желание заработать на тупой и в общем-то дешево оплачиваемой РАБоте леммингами (и отсутствие мозгов для более экологичного и выгодного их применения);
3) гражданская пассивность этих самых леммингов, неосознание последствий своих действий (чему они своими действиями способствуют).
И спам (вместе с вирусами, DDoS-атаками и т. д.) из технической проблемы в конечном итоге превращается в социальную. Спам существует потому, что мы все позволяем ему существовать. Посмотрите, что происходит при реализации всех технических средств. Владелец сайта предоставляет каждому пользователю-человеку возможность один раз высказаться (отслеживая по IP, времени и капче). Несознательный пользователь же продает свое слово спамеру, за доли цента, и вместо полезной обратной связи несет сайтовладельцу рекламный мусор. Чтобы бороться с этим, нужны не только технические методы, но и просвещение пользователей, и предоставление им альтернативных более экологичных и выгодных способов заработать. Спам - это вопрос экологии: важно не только заводские трубы фильтровать, но и чтобы рядовые юзеры налево и направо не сорили.
+1
Сегодня буквально столкнулся с данной проблемой. Все комментарии на моем сайте автоматически отправлялись на мою почту, ну и естественно не обошлось от доброжелателей с сообщениями типа "cool website" и "xxx". Пришлось написать спам фильтр, который, кстати, хорошо себя показал. Со вчерашнего для ни одно спамерское сообщение не попало мне на почту (собственно как и на сайт), но они были (сделал спец.ловушку для этого, если срабатывает спам-фильтр - срабатывает соответствующий счетчик). Вот так вот.
0
В довесок к IP-ограничениям (или вместо их) можно добавить совсем-не-юзабельную проверку введенного e-mail'а.
Перед отправкой сообщения у пользователя требуется ввести свой реальный e-mail, на который отправляется ссылка для подтверждения сообщения. Бот, конечно, может и получать почту, и читать её, и даже переходить по ссылке, но тут уже можно фильтровать по email'у - не более 2-х сообщений с одного домена, исключая популярные почтовые домены вроде @yandex, @yahoo, @gmail, @etc.
Плюс: без особых ухищрений можно реально ограничить количество "подтвержденных" сообщений
Минус: юзабилити ни к черту, база тоже нагружается не слабо
PS. Вариант от "foboss 19 марта 2008 11:21" использую и сам кое-где, реально помогает. И даже лучше чем графическая капча, потому как пока мне не втречался бот, умеющий это дело проходить. Дополнительно варианты вопросов можно разнообразить с помощью опечаток или Йода-style.
Как-то так...
Остаются био-боты (лемминги-китайцы, заполняющие каптчу), с которыми черт знает, как боротся.
Перед отправкой сообщения у пользователя требуется ввести свой реальный e-mail, на который отправляется ссылка для подтверждения сообщения. Бот, конечно, может и получать почту, и читать её, и даже переходить по ссылке, но тут уже можно фильтровать по email'у - не более 2-х сообщений с одного домена, исключая популярные почтовые домены вроде @yandex, @yahoo, @gmail, @etc.
Плюс: без особых ухищрений можно реально ограничить количество "подтвержденных" сообщений
Минус: юзабилити ни к черту, база тоже нагружается не слабо
PS. Вариант от "foboss 19 марта 2008 11:21" использую и сам кое-где, реально помогает. И даже лучше чем графическая капча, потому как пока мне не втречался бот, умеющий это дело проходить. Дополнительно варианты вопросов можно разнообразить с помощью опечаток или Йода-style.
Как-то так...
Остаются био-боты (лемминги-китайцы, заполняющие каптчу), с которыми черт знает, как боротся.
0
Sign up to leave a comment.
Как защитить свою форму обратной связи от атаки?