• 14293
  • 181
  • 10
Нравится блог?
Подписывайтесь!

Алгоритм шинглов - боремся со спамом на сайте

15 октября прошлого года я принял участие в Яндекс.Субботнике, проходившем в Алматы. При общении в кулуарах один из программистов Яндекса обмолвился, что для борьбы со спамом в почте используется Алгоритм Шинглов. Тогда я не придал этому особого значения, но про себя отметил, что это прекрасная идея.

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

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

И тут я вспомнил про алгоритм шинглов. В базе я создал таблицу spam_shingles, состоящую из двух полей - text_id (unsigned integer) и shingle_hash (integer). В поле text_id я записываю id комментария, а в shingle_hash - crc32 от всех шинглов (длиной в 2 слова) этого комментария. После этого сам комментарий удаляю.

При добавлении комментария я сверяюсь с таблицей spam_shingles запросом SELECT COUNT(*) AS intersects FROM spam_shingles GROUP BY text_id и если intersects>0, значит комментарий является спамом.

Конечно, такая схема не исключает ложных срабатываний, но на практике за полгода использования их ещё не было (каждый комментарий, признанный спамом попадает в лог). Также эту схему я по долгу службы внедрил на сайте Zakon.kz и по велению сердца на своём каталоге сайтов.

Ps: Если будет интересно, могу опубликовать свою реализацию разбивки текста на шинглы на PHP.

2 октября 2010, 10:10
1336

Загрузка...
Loading...

Комментарии

Rex
0
0
интересно, нужно взять на заметку данный алгоритм. Полезная штука

Оставьте свой комментарий

Спасибо за открытие блога в Yvision.kz! Чтобы убедиться в отсутствии спама, все комментарии новых пользователей проходят премодерацию. Соблюдение правил нашей блог-платформы ускорит ваш переход в категорию надежных пользователей, не нуждающихся в премодерации. Обязательно прочтите наши правила по указанной ссылке: Правила

Также можно нажать Ctrl+Enter

Популярные посты

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

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

Истерический вой, поднявшийся в российских СМИ по поводу перевода казахского языка на латиницу, блогер и публицист из Казани Римзиль Валеев оценил довольно-таки точно, на наш взгляд.
openqazaqstan
18 апр. 2017 / 16:47
  • 32541
  • 242
Казахстан сидит на чемоданах. А некоторые из нас – непосредственно в них

Казахстан сидит на чемоданах. А некоторые из нас – непосредственно в них

Откуда я знаю, спросите вы? Да очень просто. Голые мужики в сауне могут врать только про баб. Про машины и планы переездов – только по-чесноку. Чего уж скрывать, если все остальное напоказ.
Lesch
17 апр. 2017 / 23:30
  • 6210
  • 23
«Сорри, коммерческая тайна». Ответ от ALTEL и Tele2

«Сорри, коммерческая тайна». Ответ от ALTEL и Tele2

Пресс-служба ALTEL и Tele2 предоставила ответы на наши вопросы по поводу сервисов, навязываемых ALTEL при наборе кодов проверки баланса от других операторов.
openqazaqstan
17 апр. 2017 / 15:26
  • 4660
  • 20
Как выбрать новостройку в Алматы: инсайты, критерии и личный опыт

Как выбрать новостройку в Алматы: инсайты, критерии и личный опыт

Я прекрасно понимаю тех, кто долго ищет подходящую квартиру - сама искала, потратила на поиск 1,5 года. Что, прежде всего, повлияло на мой выбор при покупке квартиры в новостройке Алматы?
Zhumanova
21 апр. 2017 / 10:04
  • 3200
  • 10
«А ты покушала?» или Как завоевать сердце женщины простой заботой

«А ты покушала?» или Как завоевать сердце женщины простой заботой

Так как опыт хождения по свиданиям у меня немаленький, да и с интуицией давно дружу, я быстро отсеиваю тех, с кем будут проблемы. Как я это определяю? Очень просто.
Bonittta
22 апр. 2017 / 14:10
Депутат сената Айтимова: «Не нужно критиковать депутатов, так как вы сами их избирали»

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

Наши депутаты известны не достижениями и работой, а своими высказываниями. Сегодня в СМИ вышла новость, где депутат сената Бырганым Айтимова ответила на критику народа.
tala03
20 апр. 2017 / 13:44
  • 2356
  • 17
Стихия всё спишет. Почему дамба за 200 миллионов никого не спасла?

Стихия всё спишет. Почему дамба за 200 миллионов никого не спасла?

Наводнение в Атбасаре, размытые дороги, подтопленные сёла по всему Центральному и Северному Казахстану... Что происходит?
openqazaqstan
19 апр. 2017 / 15:20
  • 2315
  • 14
«Третья мировая война начнётся в мае 2017 года» – провидец из Португалии

«Третья мировая война начнётся в мае 2017 года» – провидец из Португалии

Провидец из Португалии по имени Горацио Вильегас считает, что новая мировая война состоится уже в текущем году. Считается, что португалец два года назад объявил, что Трамп станет президентом.
Seattle
21 апр. 2017 / 15:33
  • 2490
  • 11
Меня вывели из себя ученики 8 класса. Я осознала, что не хочу быть учителем

Меня вывели из себя ученики 8 класса. Я осознала, что не хочу быть учителем

Когда я пришла в первый раз на работу, слышала как доносятся крики из разных кабинетов. Крики это были не детей, а учителей, которые не могут сдержаться, когда уже все силы иссякли...
teacher1210
19 апр. 2017 / 7:56
  • 2470
  • 61