sitemap archive

Хитрий і ефективний метод боротьби зі спамерами. І без КАПЧ

в категорії wordpress фішки

теґи :

Ну ви ж знаєте, я фігню не порекомендую. Сам цим способом користуюсь майже півроку і спамерів з того часу не бачив в себе.
Які ви бачили методи боротьби зі спамом? з мого досвіду:

  • плагіни капч (captcha) — фу.
  • Акісмет — не справляється
  • Parasite Eliminator — «хорошо, но не очень». Він стоїть в мене на одному блозі + Akismet і все рівно спам проскакує (інколи на модерації затримується, а інколи й пропускає).
  • інші антиспам-плагіни — fail
  • кумедні рішення — постав галочку «я не робот» чи «нажми на прямокутник», навіть пробувати не хочу, бо знаю як це обходиться
  • відповіді на запитання — ага, один раз наткнувся на питання: «What color is orange?» я спробував і «оранжевий» і «апельсиновий» і «помаранчевий» і «orange» — ніфіга, не пускала шайнтан-машина

Я от обхожу стороною такі блоги, статтю ще можу почитати, але свій коментар лишати не збираюся.

А тепер прийшла пора розказати, чому в мене немає спамерів і для відвідувачів створенні всі умови для зручного коментування.
В мене форма коментування з «подвійним дном» — насправді в мене дві форми — в одну пишуть роботи-спамери, а друга для моїх шанованих відвідувачів.

Для цього в файлі comments.php вашої теми вордпресу знайдіть наступний рядок:

<textarea name="comment" id="comment" cols="61" rows="13" class="textarea"></textarea>

цей рядок ми замінимо на такі два рядки:

<div class="smo"><textarea name="comment" id="comment" cols="61" rows="13" class="textarea"></textarea></div>
<textarea name="real-comment" id="real-comment" cols="61" rows="13" class="textarea"></textarea>

де ви бачите, що попередню форму для коментування (textarea) ми засунемо в окремий блок, який згодом приховаємо, і створюєм ще один блок коментування для людей, в якому ім’я блоку відрізняється від стандартного імені, що присвоює вордпрес. Тут в прикладі є «real-comment», але ви можете його змінити на щось своє, наприклад на «text-comment». Так само як і можете змінити class="smo" на щось інше, наприклад class="comtext"
Тепер відкривайте style.css для вашої теми і пропишіть там цей рядок:

<strong>.smo</strong> {position: absolute; left: -1000px;}

Що це значить? Це значить, що стандартну форму коментування ми приховали, таким чином, що зсунули її на -1000 пікселів на екрані, але спамбот не може цього знати, бо він не може аналізувати вміст файлу стилів і тому буде пробувати написати коментар в цю форму.
Тепер зробимо, аби люди могли спокійно залишати коментар. Для цього відкрийте файл wp-comments-post.php, що знаходиться в корені вашого вордпрес-блогу та віднайдіть такі рядки:

$comment_author       = trim(strip_tags($_POST['author']));
$comment_author_email = trim($_POST['email']);
$comment_author_url   = trim($_POST['url']);
$comment_content      = trim($_POST['comment']);

які слід замінити на:

$spam_test_field = trim($_POST['comment']);
if(!empty($spam_test_field)) wp_die('Іще один спамер попався!');
$comment_author       = trim(strip_tags($_POST['author']));
$comment_author_email = trim($_POST['email']);
$comment_author_url   = trim($_POST['url']);
$comment_content      = trim($_POST['real-comment']);

Це і все! Це звісно не вбереже вас від ручного спаму, але якщо брати до уваги що 99% спаму це спамботи, то цей спосіб можна спокійно називати панацеєю від спаму.

UPD: Андрій Поданенко вирішив поставити під сумнів цей метод і ми позмагались у винахідливості. Про що його стаття у відповідь: «І знову спам. Погляд відсутності 0% та 100%. Antitop v0.3.»

[Post to Twitter] 

пости по цій темі

[67 коментарів]rss-comments

]]>jarofed]]> 27 березня 2009 17:29

Чудовий метод. Єдиний негатив, який я зараз в ньому бачу (через що й не встановлюю на своїх блогах) — це те, що при оновленні ворпресу кожного разу доведеться змінювати рядки у wp-comments-post.php. І взагалі, всі методи, які передбачають втручання у файли самого вордпресу (а не тільки його плагінів та тем) додають трішки більше геморою вебмайстру, оскільки про них слід пам"ятати при кожному оновленні.

А будь-які різновиди капч також ненавиджу від щирої душі!

]]>lilumi]]> 27 березня 2009 17:55

так, це недолік звичайно. Але останнім часом я не спішу обновлювати блоги, а по друге зараз Lecactus випускає патчі, що обновлюють в вордпресі лише те, що дійсно обновилось, не чіпаючи всі файли.

І на мою думку — геморой з втручанням в файли вордпресу, в сто раз меньший ніж геморой с модеруванням коментарів

 
 
]]>virua]]> 27 березня 2009 17:34

> «Я от обхожу стороною такі блоги, статтю ще можу почитати, але свій коментар лишати не збираюся.»

Лукавиш :) В мене залишив коментар на блозі, хоча там є капча. Чому промовчав про плагін wp-spamfree? Він також фільтрує спам без залучення коментатора та й ще до цього легко активується — не треба в коді ритися. Та що я тобі кажу, ти ж мені його і показав.

]]>lilumi]]> 27 березня 2009 17:52

Я хотів розказати про ручний метод, яким я давно користуюсь і тішусь з того.

А чого ж ти тоді ним (wp-spamfree) не користуєшься? Чого до сих пір капчу тримаєш.

Лукавиш :) В мене залишив коментар на блозі, хоча там є капча.

Ну, вважай це компліментом своєму блогу. А не було б капчі, було б більше моїх коментарів

]]>virua]]> 27 березня 2009 17:58

Тоді я побіг забирати капчу.

 
]]>virua]]> 27 березня 2009 18:00

До речі, я ним користуюсь. На два блоґи, які були встановлені після твоєї поради, я поставив wp-spamfree. А, от, до блоґу щочь руки не дійшли.

]]>lilumi]]> 27 березня 2009 18:04

ну от :) Постав wp-spamfree і на свій блог, а заодно напиши пост про його ефективність і досвід роботи з ним.

(нижче коментарі будуть на тому ж рівні)
]]>virua]]> 27 березня 2009 20:03

Та який тут досвід. Завантажив, активував, насолоджуйся ;) І писати нема про що. Та й про методику боротьби зі спамом я вже писав («Способи захисту сайту від ...») ще в лютому минулого року. Був там і аналог твого захисту.

 
 
 
 
 
]]>podarok]]> 27 березня 2009 17:36

— тут був провокаційний коментар від Андрія

Ну і так далі... ®podarok 8))))

]]>lilumi]]> 27 березня 2009 17:45

Я знаю про цю твою халепу з такими коментарями, але їх створюють спамботи, від яких цей метод спрацює, а ти тут тестив ручний спам ;)

 
 
]]>virua]]> 27 березня 2009 17:47

2podarok: що це було? Ти пройшов своїм/чужим ботом захист, чи коментарі додавав руками?

 
]]>podarok]]> 27 березня 2009 17:50

Стер? Сциш? 8)

Насправді твоя форма обходиться аналогічно до будь-якої... Просто страхуєшся від реально ламерських спам розсилок, яких стає тупо менше і менше щодня...

]]>lilumi]]> 27 березня 2009 17:54

не сперечатимусь, в той день, коли її начнуть обходити я застосуюю якийсь новий метод, але капчі то не буде

]]>podarok]]> 27 березня 2009 17:57

вже обходять... конкретно в мене було вже з 200 коментарів в черзі премодерації...

Вбились банами доменів лінків, які були в текстах...

]]>lilumi]]> 27 березня 2009 17:59

то ти хочеш сказати що я щасливчик? ну хай буде цей блог, а ще є serial-house.ru де відвідуванність більше 1000 уніків в день, там теж тьху-тьху, живем без спаму

(нижче коментарі будуть на тому ж рівні)
 
 
 
 
]]>podarok]]> 27 березня 2009 17:52

Щодо того, як я додав другий коментар...

Банальний POST запит генерується вручну, а другий — вжде автоматично, бо ID форми — відомий...

Захисту — неіснує... Тільки унікальний ID форми, що кожного разщу інший (Капча)

І нікуда ат нєво недецца

]]>lilumi]]> 27 березня 2009 17:58

егеж. тому я й кажу, що потрібно дати формі коментування своє ім’я, навряд чи спамерам буде вигідно робити базу блогів з таким захистом і з їхніми полями коментування.

А якщо до цього підключити OpenID плагін, то взагалі спамерам можна помахати ручкою.

 
 
]]>podarok]]> 27 березня 2009 18:04

OpenID 8)))

Навіть не так... Ось так 8))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

Форму, навіть приховану, можна також сканувати і реально спамити... Автоматом... Якщо зацікавить — напишу скрипт, який таке буде робити за долі секунд... Хоча толку то... Скрипти вже в неті давно валяються...

]]>lilumi]]> 27 березня 2009 18:14

а що спамити ти будеш? в коді дві форми і якщо постити одночасно в обидві то викличеться wp_die ;) а як ти визначиш яка з форм для користувача, а котра для спаму? якщо використаєш !comment то я додам ще одну фальшиву форму і що тоді? Аналізуватимеш css підключений через @import? :) Так то!

]]>Lordie]]> 27 березня 2009 18:50

Щось не смалиш — а що, відправити по черзі в обидві — нині вже напрочуд геніально? парсером робиться елементарно

]]>lilumi]]> 27 березня 2009 18:58

ну як показує практика, ніхто поки що такого не зробив. Якщо зроблять то підключу плагін wp-spam-free

(нижче коментарі будуть на тому ж рівні)
 
]]>lilumi]]> 27 березня 2009 19:03

слухай, а чого це в тебе на блозі стільки спам коментарів? www.lordproteus.org.ua/#p=174 тільки не кажи що ти їх не бачив

(нижче коментарі будуть на тому ж рівні)
]]>Lordie]]> 27 березня 2009 19:16

Оновитись забуваю :) За новим алгоритмом спаму поки не зустрічав (це не заклик до пробиву — все одно врешті-решт відіб'ю ;))

 
 
 
 
 
]]>podarok]]> 27 березня 2009 18:08

А взагалі цікаву ідею мені підкинув для нової теми в розділ antitop та спам

Як обійти захист унікальної форми коментарів для вордпреса.

]]>lilumi]]> 27 березня 2009 18:25

Контрольний вистріл проти автоматичного спаму : habrahabr.ru/blogs/wordpr...#comment_1119392

як ти там писав: 8))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

 
]]>lilumi]]> 28 березня 2009 10:49

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

]]>podarok]]> 28 березня 2009 11:46

Якщо не полінюсь — спробую 8)))

Якраз цей коментар — перехоплення метода POST

 
 
 
]]>mekal]]> 28 березня 2009 04:21

«кумедні рішення — постав галочку «я не робот» чи «нажми на прямокутник», навіть пробувати не хочу, бо знаю як це обходиться»

Я когда-то предлагал такое решение, а именно поставить галочку «я не робот». Но не пойму чем оно тебе не понравилось? Чем это закончится?

]]>lilumi]]> 28 березня 2009 11:01

потому что подставляя в url переменную dcaptcha_sess=1 мы обходим эту капчу на тех блогах где она есть, а на остальных этот параметр игнорируется.

]]>mekal]]> 28 березня 2009 13:38

Ух ты) Не знал, жаль что боты так легко обходят, а нам вводить приходиться :)

]]>mekal]]> 28 березня 2009 13:43

Кстати, к слову, я поставил систему ИнтенсДебат intensedebate.com вместо стандартного комментирования. Она подгружается с джавы, а значит автоботы автоматически пролетают. Спама уже давно не видел, только ручной иногда проскальзывает, но от него лекарства всё-равно нет. Из минусов знаю, что не смогут комментировать те, у кого джава отключена, но разве такие есть?

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

Что скажешь про эту систему?

(нижче коментарі будуть на тому ж рівні)
]]>lilumi]]> 28 березня 2009 13:51

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

 
 
 
 
 
]]>podarok]]> 28 березня 2009 12:11

Сорі за спам... Просто тестував скрипт...

Реально все робиться за пару хвилин, з яких цих пару хзвилин — це знаходження відповідного модуля для файрфокса для визначення необхідних полів HTTP request для додавання коментаря...

А далі — банальний скрипт на тому ж пхп або перлі або або або

Який автоматично все робить...

МАбуть буде стаття...

 
]]>lilumi]]> 28 березня 2009 12:28

А мені сподобалось. Давай іще позмагаємось. Спробуй на цей раз ;)

А статтю на цю тему від тебе буде цікаов почитати. Очікуємо.

]]>TestBot]]> 28 березня 2009 12:35

human based comment

]]>lilumi]]> 28 березня 2009 12:41

Справа в тім, що через годину назва поля вже зміниться ;)

]]>podarok]]> 28 березня 2009 12:47

Хай змінюється... Ти ж не змінюєш верстку свого коду щогодини, ти лише змінюєш змінну, для вичислення якої лише потрібно повторно завантажити тим же скриптом сторінку і змінити назву змінної 8)))

Згоден — воно ускладнює процес, але рівно стільки, скільки ти будеш затрачати на захист, спамер тратить на взлом.

В результаті ти, як і більшість, хто задовбався з цим боротись — або поставиш капчу, або будеш «human-based capcha», яка руцями буде змінювати код власного двигунця...

Найбільший прикол в тому, що ти бачиш сторону коду PHP або HTML, а спамер же дивиться виключно на HTTP протокол і іноді звіряється з видачею HTML

(нижче коментарі будуть на тому ж рівні)
]]>lilumi]]> 28 березня 2009 12:56

Ну чого ти не хочеш зрозуміти, що стикнувшись з такими труднощами, спамери просто обійдуть стороною такі блоги і будуть спамити, де немає таких захистів.

І я потратив на захист один раз, а спамеру при кожному заході (мінімум через годину), прийдеться наново парсити форму.

 
 
 
 
 
]]>podarok]]> 28 березня 2009 12:48

І ти стер корисний коментар 8) або в премодерацію впало

]]>lilumi]]> 28 березня 2009 12:51

цей:

Для захисту від спаму — неіснує варіантів на 100%

Його можна лише зменшити. І головне це розуміти.

Даний метод, що описано в статті — забезпечує відносний захист від автоматичних тупоголових програм і користувачів.

Але від розумного спаму — не діє.

В ромумному спамі — Аkismet працює на спамера, алгоритм bayesian — на спамера, ІР блокування — проти власника блогу.

Я його не стирав і в адмінці він висить як одобрений, але тут не відображається чогось.

]]>podarok]]> 28 березня 2009 12:53

дякую...

 
 
 
]]>podarok]]> 28 березня 2009 12:53

І наостанок щодо зміни щогодини...

Ризикуєш втратити коментар в момент, коли користувач завантажив код, написав коментар і відіслав, а од форми — змінено 8 (((...

Тому обов'язкова організація черги таких коментарів!!!

]]>lilumi]]> 28 березня 2009 12:59

я зробив по методу описаному тут: habrahabr.ru/blogs/wordpr...#comment_1119392 а там враховуються стики годин, ну а дві години ніхто не буде писати один коментар

]]>Lordie]]> 28 березня 2009 16:16

Терор, м'яко кажучи... а) я можу зустріти в одному з коментів посилання на гарну статтю і читати і т.д. і лише пізніше (за пару годин) згадати про вкладку, де в мене вже введно комент; б) в мене можуть бути проблеми з провайдером (регулярно) або в тебе — з хостингом — логічно, що для того щоб не втрачати текст коменту я просто залишу сторінку відкритою...

]]>lilumi]]> 28 березня 2009 16:28

ну який це терор. Ти наводиш ситуації, що рідко трапляються в принципі. Ну хочеш можу написати як колись на максайті було: «Анти-спам — шайтан-машина, поэтому копируйте в буфер обмена комментарий, перед отправкой» Та й мені здається, навіть при ситуації, описаній тобою можна буде натиснути назад в броузері, зкопіювати коментар і перегрузити форму.

Я бачив терор і побільше — це коли на блозі стоїть OpenID, а в мене не авторизований цей OpeniD на даному компі, то після авторизацїї коментар просто зникає.

Або на блогах в блогспоті, я не можу залишити коментар від свого імені, бо бачте «Ваш OpenID не може бути розпізнаним» і коментар теж зникає.

(нижче коментарі будуть на тому ж рівні)
]]>Lordie]]> 28 березня 2009 16:40

Тобі це подобається? Навряд. Головний принцип кодингу — нуль-втрата інформації. В жодному випадку технічне забезпечення не має права втратити потенційно корисний контент. Прошу враховувати. (ps: залучив пару консультантів LD... гадаю, до вечора щось «намутимо» :) )

 
]]>lilumi]]> 28 березня 2009 16:47

ну я зараз заберу цю фішку з пересолюванням md5-хешу id форми і верну все як було раніше, бо більше «спам-атак» від Андрія не передбачається =)

 
]]>Lordie]]> 28 березня 2009 19:39

З алгоритмом приблизно розібрались... «сіль» в тому, щоб хеші відповідали не часу а конкретним людям, повідомленням та коментарям... принаймні, від 90+% ботів має точно допомогти... наступний крок — позбавитись хоч 40% ручних спам-коментарів

 
 
 
 
 
]]>Lordie]]> 28 березня 2009 16:09

Стільки ідей... заюзаємо... головне — вдало скомбінувати... :) чекайте мого ходу = ) [я також на захисті, а не зламі]

 
]]>podarok]]> 30 березня 2009 09:02

javascript версія алгоритму взлому може просто вишибти цілі мережі блогів 8 (((

Скажімо повісивши на сторінках тих же фішкі-нєт код на пару кілобайт можна за день розіслати сотні тисяч повідомлень спаму анонімно 8 (

 
[@] ]]>ELECTRIC]]> 30 березня 2009 12:42

оТ З ТИМ ОРАНЖЕВИМ ТО БУЛА ХОЗМА, РАЗ ПРОБУВАВ ЗАЛИШИТИ КОМЕНТ — ТАК І НЕ ВДАЛОСЯ. нАВІЩО ТАКУ ЄРУНДУ СОБІ В БЛОГ СТАВИТИ — НЕВІДОМО:)))

 
[@] ]]>ELECTRIC]]> 30 березня 2009 12:42

соррі за капслок:)))

 
]]>Евгений]]> 31 березня 2009 17:23

<<<но она для тех, кто не прихотлив.

В каком смысле неприхотлив?Приходится делать много ручной работы?

]]>lilumi]]> 31 березня 2009 17:26

для тех, кто не прихотлив к внешнему виду, ведь дизайн intense debate нельзя изменить и подогнать под общий дизайн сайта

 
 
[@] ]]>Dandr]]> 1 квітня 2009 23:29

Ты бы ремарочку где-нить сделал, что теперь при использовании этого метода категорически нельзя делать автообновление вордпресса.

ЗЫ Звиняй, хлопче: в переводчик закидывать ломает))

 
]]>Serjart]]> 4 квітня 2009 21:38

Як на мене то краще вже плагін-капча для вордпресу. Встановив і працює. Хоча бувають певні дива, якось мені спамили постійно в один пост. Коментарів було штук 120, хоча капча була вімкнена. :D

]]>lilumi]]> 4 квітня 2009 22:43

я не коментую блоги з капчами і знаю багато людей, що теж притримуються такої позиції.

[@] ]]>Dandr]]> 8 квітня 2009 20:37

Прошу прощения, что вклиниваюсь, но таки не соглашусь с тобой. Тут зависит от того, насколько интересен мне этот человек. И потом, если установлен WP-reCAPTCHA, про который только что писал, то проще один раз зарегистрироваться и больше не видеть эту капчу вообще.

ИМХО, конечно же.

]]>lilumi]]> 8 квітня 2009 21:51

ни разу не возникало желание регистрироваться на блоге.

У меня на сайте Доктора Хауса два месяца стояла форма комментирования с помощю OpenID от лиру, она автоматом подцепляла лирушных аккаунт, позволяла вводить ник ЖЖ и поддерживала всех остальных OpenID-идентификаторов, так вот — за два месяца не появилось ни одного нового комментария, хотя у меня остались 4 страницы (pages) на которых этой формы не было, а была стандартная вордпресовская, так на тех страницах до сих пор ведутся ожесточенные споры на околохаусные темы и комментарии появлялись ежедневно.

(нижче коментарі будуть на тому ж рівні)
[@] ]]>Dandr]]> 8 квітня 2009 21:57

Лирушные каменты — это вообще жёсткая вещь. Видел их у Альтесака — он отрубил их через два дня после установки.

Вообще, буду иметь в виду такой нюанс.

 
 
 
 
 
[@] ]]>Lukom]]> 21 червня 2009 20:33

Ідеального методу звісно не існує, але можна написати свою реалізацію антиспаму, а не користуватись готовими системами. Всім лінь писати бота під ще 1 вид форм, тому цей спосіб найкращий.

Можу порекомендувати статтю на хабрі по цій темі:

habrahabr.ru/blogs/webdev/50328

 

Ваш коментар

Трекбеки

LilumiМене звати LiluMi, а це мій блоґ. Тут про веб-розробку та лайфхаки. Рекомендую підписатись на RSS Інформацію про мене читайте на сторінці me LiluMi

Що тобі до вподоби?

]]> greader Yandex-lenta
Читать на русском (чиста паржать) ]]>
]]>
follow me on Twitter
UA TOP Bloggers
Рейтинг блогов Рейтинг блога lilumi.org.ua Рейтинг блогов
]]>
Безкоштовний хостинг TOPUA

Тобі передають привіт 39 медвежаток. Це підняло тобі настрій на 2.175 а в Австралії живе колібрі у якої дзьобик довжиною на 13.09см.