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 для вашої теми і пропишіть там цей рядок:

.smo {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.»

UPD2 (26.11.2010) Тепер вже не потрібно це все робити вручну, бо є вже готовий плагін Antispam Bee

Post to Twitter

69 коментарів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

то ти хочеш сказати що я щасливчик? ну хай буде цей блог, а ще є http://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

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

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

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

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

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

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

Контрольний вистріл проти автоматичного спаму : http://habrahabr.ru/blogs/wordpress/44350/#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

Кстати, к слову, я поставил систему ИнтенсДебат http://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

я зробив по методу описаному тут: http://habrahabr.ru/blogs/wordpress/44350/#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 вид форм, тому цей спосіб найкращий.

Можу порекомендувати статтю на хабрі по цій темі:
http://habrahabr.ru/blogs/webdev/50328

 
]]>seobalu]]> 15 Жовтня 2011 11:34

Cochniy post)) Spasibo

 
]]>Liska]]> 18 Січня 2012 08:52

Відмінно ! Все б так писали: )

 

Ваш коментар

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



Тобі передають привіт 92 медвежаток. Це підняло тобі настрій на 2,012 а в Австралії живе колібрі у якої дзьобик довжиною на 29.57см.