Защита от спама

HEm

Сетевой бобер
Защита от спама

3цВ канале клуба возник разговор на такую тему - как прикрыть доску объявлений/форум/гостевую от рекламного спама, от злобных программ рассылок объявлений
Хотелось бы услышать от уважаемого пхп-сообщества какие методы используются для этого и какие уже обойдены. На сейчас мне известны следующие:
  1. запрет определенным IP - легко обходится
  2. выставление определенной куки - обходится
  3. изменение ссылки через определенное время - обходится, но значительно меньшим числом программ (им надо еще заметить смену чтобы написать код обхода такой защиты)
  4. генерация урла с использованием js - принципиально обход возможен при условии написания JS-парсера
  5. генерация картинки и ввод ее содержимого пользователем для подтверждения - в принципе обходится, но вряд ли есть такие сервисы, для сканирования и распознавания изображени требуется программа типа FineReader и большие вычислительные ресурсы
  6. банальная проверка на повторяющееся объявления - зависит от правил размещения объявлений и от спамера
    [/list=1]
 

HEm

Сетевой бобер
Да, еще один метод - проверка времени набивания объявления, если за очень короткий срок то вероятно, робот - также легко обходится
 

Crazy

Developer
Re: Защита от спама

генерация урла с использованием js - принципиально обход возможен при условии написания JS-парсера
Обычно написание JS-парсера не требуется. Если сам JS-код не меняется, то достаточно однократного ручного анализа алгоритма.

генерация картинки и ввод ее содержимого пользователем для подтверждения - в принципе обходится, но вряд ли есть такие сервисы, для сканирования и распознавания изображени требуется программа типа FineReader и большие вычислительные ресурсы
IMHO, это оптимальное решение в плане баланса стоимости защиты и стоимости взлома.

банальная проверка на повторяющееся объявления - зависит от правил размещения объявлений и от спамера
Обходится элементарно.
 

alex

Guest
А у меня в форме каждый день атоматом подставляется разная id
id = число месяца.
и спамеры если и смогут что-то сделать то только в течении суток.
работает естественно без кук.
на одной странице в hidden вставляю id
на другой банально проверяю.
 

Crazy

Developer
alex, к тебе еще не приходили роботы, написанные специально для тебя. :)
 

slach

Новичок
ну в общем, почти 100 процентов обходится все из выше перечисленного, сложности возникают только с изображениями и если выставлять флаг посещения страницы с формой отправки через сессию, а потом анализировать время задержки...

есть еще такая особенность, что спаммеры часто не любят менять текст сообщений, можно просто фильтровать по содержимому... особенно по контактным телефонам... или по емайлу или по сайту..
 

HEm

Сетевой бобер
Автор оригинала: slach
есть еще такая особенность, что спаммеры часто не любят менять текст сообщений, можно просто фильтровать по содержимому... особенно по контактным телефонам... или по емайлу или по сайту..
Отчасти когда я создавал этот топик надеялся на то что подскажут некоторый алгоритм который позволял бы делать легко сложные фильтры
Например, есть параметр $theme и фильтр такой - если $theme!='sell' (не доска "Продаю" а например, доска "Знакомства") и в тексте присутствует корень слова "прода" (продажа, продаем, продаю, продает и т.д.) то не пущать
 

edi

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

HEm

Сетевой бобер
ты же не будешь на каждую новую сотню адресов в день заряжать свои пулялки? этак никакого трафика не напасешься
к тому же немало спамеров юзают неживые адреса типа [email protected]
 

HEm

Сетевой бобер
Автор оригинала: Дmитрий
Пишется установка id через cookies и заносится он в базу.
скрипт != браузер, если автор ему не скажет сохранять куки то он их и не будет сохранять
сделать уникальные ID, генерирующиеся на странице заполнения формы и записывающиеся в базу и при отправки записи сверяются).
это обходится просто, но натолкнуло меня на такую мысль - ложить этот id не в одно и то же место на странице с которого стандартно будет скрипт его узнавать а в случайное (как реализовать еще не представляю - логика сокрытия все равно легко распутывается)

Еще один способо - комбинация вышеуказанных способов - т.е. применяется парочка методов, опять же случайно выбранных из набора методов, при анализе на спам проверяется соответствие только этих способов, наличие всех решений сразу указывает на спам

Если отвлечься на уровень выше в абстракциях, то защитится можно, применяя способ о которых заранее не знаем даже мы сами.
Был такой рассказ, человек (Ч) играл с телепатом (Т) в азартную игру и естественно проигрывал, только Ч брал карты - Т сразу читал их в его мозгу.
А в последней ставке Ч пошел ва-банк и карты не открыл - шансы его были 50х50
 

RomikChef

Guest
меня поражает, какую титаническую работу мысли может породить банальное неумение пользоваться поиском...
 

RomikChef

Guest
в защите от спама надо руководствоваться двумяпростыми принципами.
1. на обход защиты всегда нужно гарантированно меньше времени, Чем на ее создание.
2. Защита не должна создавать проблем лояльным посетителям. впротивном случае спамер начинает действовать твоими же руками - он и мечтать не мог о таком эффекте, чтобы админ сервера сам отпугивал посетителей.
3. самая лучшая защита - политическая, а не техническая.
есть много ресурсов, которые не спамят.
 

HEm

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

RomikChef

Guest
Данное заявление никак не опровергает моего утверждения.
ты ничего не искал и ничего не нашел.

Создавать новую тему абсолютно бессмысленно, поскольку такая, "с квинтессенцией" есть, и не одна.
 

HEm

Сетевой бобер
Ок, послушно пошел искать по форуму, потратил полчаса, не нашел НИЧЕГО. Можно конечно тыкать в меня пальцем и кричать на весь свет что я тупой, но на указанную тему я ничего не нашел.
Если я не умею искать, покажите мне эти темы, может научусь
 

Yurik_A

Guest
а почему бы не использовать вот такую функцию:

function nospam($email) {
$getval = strval($email);
for ($i = 0; $i < strlen($email); $i++) {
$asciicode = ord($getval[$i]);
$nospammail .= "&#$asciicode;";
}
return $nospammail;
}

echo nospam($mail);
 

HEm

Сетевой бобер
ты не понял задачу
Вопрос стоял не о способах скрытия почтового адреса от mail-grabbera а защиты доски/форума/гостевой от нежелательного контента
по поводу защиты email можно почитать тут: http://detail.phpclub.net/2002-11-15.htm
 

RomikChef

Guest
Жалко. Я тоже не нашел.
хотя всего пару месяцев назад мы с Крейзи обменивались воспоминаниями о том, кто когда первым узныл этот способ защиты от спама.
крейзи, не помнишь каких-нибудь ключевых слов?
вообще форум ищет отвратно. по-моему, железно только за последний месяц.
 

Vasya

Guest
Самый рабочий метод, imho, это наличие модератора.
Модератор визуально определяет спамовый контент, берет из него ключевые слова, скажем, телефоны или название организации... Потом вставляет найденные паттерны в лист, который, в свою очередь, использует робот, который проходит по базе и удаляет мусор.
В идеале, можно написать робота, который будет определять спам самомстоятельно пользуясь теми же критериями, что и модератор... :)
Это не так уж невозможно, кстати!..
 
Сверху