Wordpress: Блокируем спам

Если у вас на сайте стоит WordPress, то скорее всего у вас на сайт приходит много спам-комментариев.

Конечно, существует альтернатива — Akismet, но я расскажу вам еще один интересный способ. htaccess-трюк для предотвращения спама в ваш блог.

Вставьте простой код в свой .htaccess файл, расположенный обычно в вашем корневом каталоге вашего WordPress блога. Не забудьте указать URL вашего блога в 4 строке.

Не забывайте всегда делать резервную копию перед редактированием.

RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*yourblog.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

Приведенный выше код проверяет реферер (URL источника запроса), когда происходит доступ к файлу wp-comments-post.php. Если реферер существует, и это ваш URL соответсвует вашему блогу, комментарий будет допущен. В противном случае, спам бот будет перенаправлен и комментарии не будут опубликованы.

P.S. Переводил для своего блога, и сюда запульнул тоже. :)
–4
6 декабря 2009, 21:00
8
WieFix 10,0

комментарии (9)

+5
baidin #
Обычно спам-боты подставляют верный реферер при отправке форм.
Так что ваш трюк вряд ли защитит от спама.
+1
shifttstas #
Скорее это не альтарнатива а дополнение…
0
Mullwar #
Используйте плагин «Antispam Bee». Очень хорошо блокирует русский и английский спам. У меня работает на 99.9%.
–2
bogus92 #
Почему бы не использовать CAPTCHA?
0
Aquahawk #
А я просто код передачи комментария поправил. Параметр коммент должен быть пустым, а реальный коммент в другом параметре. Если коммент не пуст, то это спам, а если пуст то из второго параметра берём данные.
0
mrThe #
Советую плагин WP-SpamFree. У меня за ~месяц использования уже «WP-SpamFree has blocked 450 spam comments.» Пару раз просматривал лог — всё идеально, людей пропускает, ботов блокирует.
0
Sannis #
Переводил для своего блога, и сюда запульнул тоже. :)
А кто тогда автор? :)
0
andoriyu #
вероятно здравый смысл. раз 5 уже видел это решение, и наверное 4 из них на хабре
0
TiGR #
Проблема в том, что иногда браузеры обычных людей выдают вместо referer "-". Или referer может резаться где-то на стыке с сетью. Короче, вы заблокируете обычных пользователей.

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