Christian Archer Chase Your Dreams!

вторник, 01 декабря 2009

Зачем нам нужно вдохновенье // Сделай глубже вдох // Ни для кого не откровенье // Что Шепард сдох

23:30 Еще одна избегалка спама

Раз уж Dandr решил опубликовать мой способ, надо бы сделать канонический вариант инструкции.


Итак. Смысл — боты обычно не заполняют форму на сайте, а шлют запрос напрямую файлу wp-comments-post.php. Спрячем его.


1. Подготовим ему замену


файл wp-comments-nospam.php (имя файла не важно, лишь бы было везде одинаковым)

dandr, про индивидуальноcть названий — разумное замечание


это должен быть php-файл, запускающий wp-comments-post.php

<?php

include('wp-comments-post.php');

?>


или


символическая ссылка на wp-comments-post.php

в шелле: ln -s wp-comments-post.php wp-comments-nospam.php


или


просто переименовываем wp-comments-post.php в php-comments-nospam.php


Замечание: в отличие от предыдущих, в этом способе придётся переименовывать также и после каждого обновления WordPress


2. Защитим старый файл


вносим в .htaccess такой код:


<Files wp-comments-post.php>

order allow,deny

deny from all

</Files>


Замечание 1: если у вас отключен доступ к файлу .htaccess, поможет только переименование


Замечание 2: если вы переименовываете файл, пункт становится необязательным (но всё равно желательным — вдруг забудете при очередном обновлении)


3. Направим комментарии в новый обработчик


Надо немного подкорректировать тему, а именно файл (обычно) comments.php


Находим форму добавления комментария. Обычно это кусок кода вида


<form action="wp-comments-post.php" method="post"...


заменим имя файла в поле action:


<form action="wp-comments-nospam.php" method="post"...


Замечание: есть способ для параноиков — подменять имя файла в динамике джаваскриптом. 100% защиты от ботов и юзеров без джаваскрипта.


4. OpenID


Если вы используете плагин WP-OpenID, ему нужно персонально указать файл обработчика. Сначала надо было править код плагина (из-за этого я отключил у себя когда-то этот способ, особенно когда wp-openid бешено обновлялся каждые 2 дня), но теперь всё намного проще:


в wp-config.php добавляем


define(’OPENID_COMMENTS_POST_PAGE’, ‘wp-comments-nospam.php’;);


Наличие этой опции доказывает, что не я первый додумался :-D


Всё! Имеем профит, не имеем спама, хотя кое-какие боты похоже начали догадываться, тем не менее уменьшение спама в разы гарантированно.


Originally published at Chase your dream!. You can comment here or there.


@темы: wordpress, spam, howtos

URL
которая испортилась - начались по новой желтые ветры с ки...
Нужны красивые девушки, в любом стиле, можно аниме и прос...
Ну вот, наконец-то! На четверг я записалась на эпиляци...
Самый большой кошмар корейца за все годы его жизни - это ...
Существуют ли слепо-глухо-немые люди? Не ставшие такими, ...
Чёрт! Мало того что редактировать записи из клиента нель...

02.12.2009 в 14:38

02.12.2009 в 14:38
Спасибо, теперь буду знать, как лучше писать спамбота.
URL

02.12.2009 в 14:42

02.12.2009 в 14:42
а так что, было трудно догадаться?
URL
Добавить комментарий

Расширенная форма

Подписаться на новые комментарии
Получать уведомления о новых комментариях на E-mail