The Dragon's Nest

Как избежать автоспама в WordPress’е.

01.12.2009 от Dandr


Думаю, про такой метод, как “подмена полей” все слышали. Ну, если и не все, то очень многие. Достаточно муторный, но действенный метод. Единственный косяк – с этим методом можно забыть про автоматическое обновление движка. Только вручную и только с повторением этой процедуры после каждого обновления.
SunChaser как-то обмолвился про несколько иной (хотя и похожий) метод: подмена файлов. Суть в чём? За добавления комментария отвечает файл wp-comments-post. и спамеры (авто) отправляют запрос именно к нему. Если за комментирование будет отвечать другой файл, то автоспам не пройдёт.
Исходи из этого, есть как минимум два варианта решения.

  1. ВАРИАНТ № РАЗ.
    • создаём в корне файлик wp-comments-antispam. (название может быть любое, даже лучше, что бы у всех было индивидуальное) со следующим содержимым:
      1
      2
      3
      4
      5
      
      < ?php
       
      include('wp-comments-post.php');
       
      ?>
    • в корне же находим .htaccess и вставляем строки:
      <files wp-comments-post.>
      order allow,deny
      deny from all
      </files>
    • в корне же открываем wp-config. и добавляем строку:
      1
      
      define('OPENID_COMMENTS_POST_PAGE', 'wp-comments-antispam.php');
    • ну, и заключительный шаг.
      Тут уже зависит от вашей темы. Скорее всего, это будет файл comments. в каталоге текущей темы.
      Находим строку, начинающуюся так:

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

      и в “action=”wp-comments.”" подставляем название файла из п.п. 1:

      1
      
      <form action="wp-comments-antispam.php" method="post" ...
    • Собственно, всё. Воспользовался этим методом - пока ни одного спамерского камента не было.
      Касательно обновлений - как я понимаю, после каждого обновления нужно только повторить пп. 3.

  2. ВАРИАНТ № ДВА.
    • Собственно, SunChaser обмолвился о переименовании файла без подробностей. Алгоритм действий, как я понимаю, несколько проще:

    • переименовываем в корне файлик wp-comments. в wp-comments-antispam.;
    • в корне же открываем wp-config. и добавляем строку:
      1
      
      define('OPENID_COMMENTS_POST_PAGE', 'wp-comments-antispam.php');
    • находим comments. в каталоге текущей темы.
      Находим строку, начинающуюся так:

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

      и в "action="wp-comments."" подставляем название файла из п.п. 1:

      1
      
      <form action="wp-comments-antispam.php" method="post" ...
    • Как видите, отличается только первый пункт и второй вообще не нужен. Но этот способ я не проверял.

Вобщем, берём на вооружение, воплощаем и делимся впечатлениями.
ЗЫ И не забываем, что плагин добавл лишний пробел в первом блоке кода между "< " и "?". Пробел удалить.
UPD: хауту от афтара метода.

Связанные записи


Рубрики: HOWTO, блоговодство, интернет | 19 комментариев


19 комментариев

SunChaser — 1 декабря 2009 @ 22:52

> после каждого обновления нужно только повторить пп. 3.

не, не надо. конфиг ж не переписывается

> Алгоритм действий, как я понимаю, несколько проще

да, истинно так. но надо будет переименовывать после каждого обновления =) поэтому неудобнее

да, подправь пункт 2 в 1 способе. так ты закроешь весь блог на доступ ;)

Dandr — 1 декабря 2009 @ 22:56

SunChaser :

да, подправь пункт 2 в 1 способе. так ты закроешь весь блог на доступ

пля… Часть строк съелась. :(

Алексей Рязанцев — 1 декабря 2009 @ 23:20

@ Dandr: т.е. невидимую капчу ты не попробовал ?

Dandr — 1 декабря 2009 @ 23:22

Алексей Рязанцев :

@ Dandr: т.е. невидимую капчу ты не попробовал ?

Нет. Я эту методу вчера вечером как раз прикручивал.

Ptah — 3 декабря 2009 @ 9:44

Я правильно понимаю, что с первым способом обновляться можно автоматически?

И плагин для цитирования будет работать?

SunChaser — 3 декабря 2009 @ 10:07

Ptah :

Я правильно понимаю, что с первым способом обновляться можно автоматически?

да

Dandr — 3 декабря 2009 @ 11:06

Ptah :

И плагин для цитирования будет работать?

да.

Ptah — 3 декабря 2009 @ 11:59

@ Dandr:
@ SunChaser:
Круто! Спасибо, сегодня же обязательно попробую! :)

Dandr — 3 декабря 2009 @ 13:40

@ Ptah:
на здоровье)))

Ptah — 3 декабря 2009 @ 14:31

эмм… не нашел у себя файла .htaccess
может я не там ищу?

SunChaser — 3 декабря 2009 @ 16:51

@ Ptah:
либо он в инвизе, либо создай =)
у тебя, гляжу, rewrite не включен, его вполне может и не быть

Ptah — 3 декабря 2009 @ 16:53

@ SunChaser: насчет инвиза я тоже подумал, но через cpanel не нашел функцию включить видимость. Дома через фтп гляну.

Насчет rewrite нифига не понял, скажи по-русски, я же чайник :)

SunChaser — 3 декабря 2009 @ 17:02

@ Ptah:
у апача есть такая функциональность — превращать ссылки something.com/engine.php?article=my-cool-atricle в something.com/articles/my-cool-article.html
или даже вот http://www.dandr.su/?p=8500 в http://www.dandr.su/2009/12/01/kak-izbezhat-avtospama-v-wordpresse/

чтобы это работало надо несколько строк в .htaccess, который по сути конфиг апача для данной папки. у тебя это отключено в блоге, так что вполне файла может и не быть. хотя вроде как должен вообще-то… странно. думаю, он всё же просто скрыт

SunChaser — 3 декабря 2009 @ 17:03

http://www.dandr.su/?p=8900 на самом деле :-D

Ptah — 3 декабря 2009 @ 17:04

@ SunChaser: насчет таких ссылок, то это, насколько я знаю плагин такой. А файл поищу дома, должен быть – найдем :)

SunChaser — 3 декабря 2009 @ 17:10

@ Ptah:
не, не плагин. это настраивается на http://ptah-blog.com/wp-admin/options-permalink.php
он вставляет в .htaccess такой обработчик:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

плагин лишь меняет кириллицу в пермалинках на латинницу. он называется transliterado

Ptah — 3 декабря 2009 @ 17:13

@ SunChaser: хм, действительно. Давно это так? Может в ранних версиях не было?
Реально видел такой плагин. :)

SunChaser — 3 декабря 2009 @ 17:16

В 2.6 было. за еще более ранние не отвечаю. может, плагинописатели не умеют копаться в настройках? :-D
или он делает что-нибудь слегка другое. или слегка подругому, например когда злые хостеры не дают допуска к .htaccess (хотя я не представляю как это тогда)

Dandr — 3 декабря 2009 @ 19:28

SunChaser :

он вставляет в .htaccess такой обработчик:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

ах, воот почему на локалхосте у меня ЧПУ не работают… :)

Оставить комментарий

Текст комментария:

Заметьте: Включена проверка комментариев. Нет смысла повторно отправлять комментарий.


скачать русский wordpress | 61 запросов. 3.391 секунд | /2009/12/01/kak-izbezhat-avtospama-v-wordpresse/