Одна з перешкод на шляху створення успішного блогу на основі WordPress — це використання вашого блогу іншими людьми для розміщення спаму в коментарях вашого блогу та спроби залучити більше відвідувачів на власні сайти за рахунок вашого проекту. Іноді для цієї мети використовують "роботів", іноді - саморобні кустарні скрипти для браузерів, іноді пам'ять вручну, як зазвичай коментують користувачі. І все це зовсім не добре для вашого проекту.
Але завдяки гнучкій архітектурі WordPress є безліч способів завадити спамерам. У цьому пості ми поговоримо про шість простих та ефективних методів створення блогу, в якому не буде спаму.
1. Король антиспаму - плагін Akismet
Від чого захищає: Від автоматичного та "ручного" спаму
Говорячи про різні методи боротьби зі спамом у коментарях, було б дивно не почати з найпопулярнішого інструменту боротьби зі спамом. Він найпопулярніший ще й тому, що включений у постачання WordPress; але також і тому, що має досить високу якість боротьби зі спамом.
Згідно з даними з офіційного сайту даного плагіна, він виконує сотні тестів на власних серверах, коли у ваш блог додають новий коментар. Якщо тест позитивний, коментар з'явиться у вашому блозі; в іншому випадку новий коментар відправляється в кошик для сміття.Від вас потрібно всього лише заповнити просту реєстраційну форму (ви можете вибрати між безкоштовною та платною версіями), і ви зможете почати користуватися даним плагіном, просто ввівши ключ до API на сторінці налаштувань плагіна.
Читайте докладніше про налаштування плагіна Akismet у нашому уроці Що робити одразу після встановлення WordPress, Крок 7.
2. Відключаємо прямий доступ до файлу WP-коментарі-post.php за допомогою .htaccess
Від чого захищає: Від автоматичного спаму
Ви завжди можете вимкнути прямий доступ до файлу WP-коментарі-post.php шляхом додавання наступного коду до файлу .htaccess:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post.php* RewriteCond %{HTTP_REFERER} !.*yourdomainname.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L] </IfModule>
(Джерело коду: Кішки, які кодують)
Логіка тут проста: якщо "реферал" не з вашого блогу (не забудьте замінити "ваше доменне ім'яще один позитивний момент у цьому коді полягає в тому, що "роботи"-спамери не збільшать навантаження на ваш ресурс, оскільки не зможуть отримувати доступ до цільового файлу.
3. Плагін "Файли cookie для коментарів"
Від чого захищає сайт: Як від автоматичного, так і від введеного вручну спаму
Знаю, що повинен залишатися неупередженим по відношенню до різних антиспам-плагінів, але плагін Файли cookie для коментарів — це, схоже, найкращий плагін, яким я коли-небудь користувався.
Процитую автора плагіна Donncha O Caoimh:
Плагіну потрібна таблиця стилів або знімок вашого вихідного HTML-коду в блозі. Коли браузер завантажує таку таблицю стилів чи образ, то розміщується ще й cookie. І якщо потім користувач залишає коментар, то йде перевірка на наявність цього cookie-файлу. Якщо цього файлу немає, коментар позначається як спам.
Все дуже просто. Навіть більше: плагін також перевіряє, наскільки швидко надсилається коментар. Так, наприклад, якщо коментар відправлено протягом 3 секунд з моменту завантаження сторінки з постом, такий коментар швидше за все є спамом. Ви можете встановити інтервал на сторінці налаштувань плагіна і вибрати також, як чинити з "перехопленими" коментарями: видаляти їх відразу ж або поміщати в папку "спам".
4. Використання сторонньої системи коментування (на кшталт Disqus або Jetpack)
Від чого захищає: Від автоматичного спаму
Є хороший бік у системах коментування: спам-роботи з ними взагалі не справляються. Можливо, вони можуть практично нічого з ними зробити, т.к. системи коментування переважно використовують завантаження всередині iFrame (а може, причина ще в чомусь, не знаю точно).
Як би там не було, ви можете і навіть повинні використовувати системи коментування від сторонніх розробників, якщо вас буквально "завалює" спамом у коментарях. У них розширена функціональність, вони добре виглядають і приємні для використання, і головне – у них надійний імунітет щодо спаму.
Читайте також:
5. Використання чекбоксів для надсилання коментарів на сайт
Від чого захищає: Від автоматичного спаму
Знову ж таки: наведений захід не є надто надійним для захисту від спаму, але може допомогти вам у вирішенні ваших проблем і при цьому не дратує законослухняних звичайних коментаторів вашого сайту.
Для початку вам потрібно додати чекбокс до форми коментарів у вашій темі (скоріше за все, ця форма міститься у файлі comments.php). Робиться це приблизно так:
<label for="enable"><input type="checkbox" name="enable" id="enable" onClick="apply()" class="enable_checkbox"> Check this box to enable the send button</label>
Добре також додати цей чекбокс одразу над кнопкою додавання нового коментаря. До речі, запам'ятайте значення атрибутаім'яв кнопці додавання нового коментаря та елементаформу>. Якщо у вас немає атрибуту для "name" та елемента
Коментарі до запису: 3
День добрий.
Будь ласка, напишіть приклад блокування доступу спамерів до wp-comments-post.php на прикладі вашого сайту. Не можу розібратися як саме має виглядати кінцевий вид коду. У файлі .htaccess є запис, тобто. нову додати нижче? Чекаю на вашу відповідь у даному пості
Ми не використовуємо це блокування через .htaccess на wpcafe.org. Приклад готового коду є в цьому уроці пункту 2, додається в .htaccess з нового рядка.
Мені другий метод з аштіакцес допоміг. Вже сил ніяких не було, по 400 коментарів спаму сипалося за добу. Тепер спокійно начебто. Дякую!