Поддержка Проблемы и решения Встраивание своего антиспам-фильтра

  • Подскажите, куда в обычный WP правильно встроить свой PHP-код для простановки сообщению статуса «Будет опубликован после проверки»?
    В настройках WP в Параметры->Обсуждение есть возможность указать, например, максимальное количество ссылок, стоп-слова и т.п.
    Хотелось бы встроить свой алгоритм в это место.
    Подскажите, как это сделать? интеерсуют просто ссылки/ключевые слова дял поиска. Ну или небольшие примеры — это просто замечательно.

Просмотр 13 ответов — с 1 по 13 (всего 13)
  • Хотелось бы встроить свой алгоритм в это место.

    Какой, если не секрет?

    Заточеный на идущий горой спам вида
    sgrzbjrvjl, cheap web hosting, yjjDWUs.
    У него есть явно выделяемые признаки, помимо ссылки. А вот слова — постоянно разные, т.е. в стоп0лист не добавишь.

    А вы для чего интеерсуетесь? 🙂

    А вы для чего интеерсуетесь? 🙂

    Не обращайте внимания, случайно 🙂
    Добавьте в .htaccess (требует наличия mod_rewrite, если ЧПУ настроено, то работать будет)

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_METHOD} POST
    RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
    RewriteCond %{HTTP_REFERER} !.*ваш.сайт.* [OR]
    RewriteCond %{HTTP_USER_AGENT} ^$
    RewriteRule ^(.*)$ ^http://%{REMOTE_ADDR}/$ [R=301,L]
    </IfModule>

    Слово ваш.сайт замените на свой, например google.ru
    Это (практически) остановит спам на 98-99%

    Добрый день!
    Спасибо за ваш ответ.
    Попробовал и так и сяк, посмотрел что в первоисточнике, так сказать, совета написано.

    По всей видимости, если этот метод когда-то и работал — то сечйчас уже не работает, видимо спамеры научились подставлять правильный referer, что ен сложно. Во всяком случае спама не уменьшилось ни на грамм.
    Причем само по себе приписанное правило RewriteRule явно работает: для проверки в ваш.сайт вписал случайные символы — и сразу комментарии перестали добавляться из браузера.
    Т.е. правило как таковое работает, но спамерам это уже не помеха.

    А вы им пользовались? работает?

    Да, у меня работает. Возможно Вас не бот спамит.. Тогда отслеживайте логи доступа и блокируйте по IP

    @wikicms спасибо за метод.

    встроить свой алгоритм в это место…. как это сделать? … примеры

    Теоретически, написать плагин.
    http://codex.wordpress.org/Writing_a_Plugin
    http://pelfusion.com/know-how/20-tutorials-to-develop-wordpress-plugin/
    Примерами могут послужить плагины того же назначения.
    Помимо Akismet, пробовал Invisible Captcha — плагин (вроде) добавляет дополнительно текстовые поля далеко за рамками браузера, на которые клюют боты. Правда на него в то время ругался валидатор, не знаю как сейчас.
    Плагин Antispam Bee — с похожим функционалом.

    Ну да, не бот. Я ведь приводил вверху текст.
    Нуи полторы тыщи в сутки спам-сообщений — разве что китайцы 🙂

    Можно, кстати, и более простой и универсальный анти-спам поставить: например, добавить в форму скрытое поле, в которое писать… да что угодно. Или константу, или сумму цифр IP-адреса подключившегося клиента. Ну и проверять при добавлении. Этакая «скрытая капча». Алгоритм элементарно менять раз в неделею чуть-чуть.
    Впрочем, я уверен, что роботы заточены под конкретные CMS, и никто не станет заморачиваться разбираться с конкретным сайтом, если только у него не сто тысяч посетителей в сутки.

    По поводу антиспам-кода — никто не подскажет? посмотреть как аскмет инсталлируется, чтоли, или капча какая-нибудь для WP…

    что-то не пойму чем вас обычная капча не устраивает?
    плагинов с капчей море в репозитории

    Капча — это неэтично, я считаю.
    А уж тем более такая, как у гугля: я лично ее с трудом разбираю, да и то не каждую.
    Ну т.е. понятно есть определенный уровень блога, когда приходится уже ставить все что только можно придумать, иначе спамеры съедят. Я пока не достиг такого уровня, хочется найти способо проще для посетителей.

    stur, спасибо за подсказанные ключевые слова! то, что надо.

    Капча — это неэтично, я считаю.

    Абсолютно согласен!! боты и дешёвые индусы капчи разгадывают на раз, а мне мучатся приходится.

    Простые решения:
    В1. Изменить имена полей.
    В2. Добавить простое поле\чекбокс и проверять его отметку.
    В2.2 поставить 3 поля, где человек должен отметь только одно-два (робот или не отметит ни одного или отметит все)
    В3. как-то так:

    $textcaph="Защитный код: <b>ERnosDpSAam</b> <p style=font-size:10px>Введите, только то, что написано маленькими буквами</p>"
    $caph="nospam";// правильный ответ;

    и где надо вывести:
    <?php echo $textcaph; ?><input type="text" name="caph" size="10">

    У меня как раз и был вопрос в какое место WP это наиболее правильно вставить. Идеально было бы пи этом еще и вовсе не трогать код WP движка. А уж какой код вставить — тут не проблема придумать 🙂

    По подсказанным ключевым словам попробовал несколько, выбрал готовый плагин NoSpamNX. Работает как раз как я описывал по сути: скрытые поля, в них при формировании кода формы заполняется некая информация, неизменность которой проверяется при добавлении.

    На основе исходников можно как раз изучить вопрос написания плагинов подобного рода.

Просмотр 13 ответов — с 1 по 13 (всего 13)
  • Тема «Встраивание своего антиспам-фильтра» закрыта для новых ответов.