2014年12月9日火曜日

【備忘録】コメントスパムの撃退方法(wp-comments-post.phpへのアクセス制限編)

コメントスパムが数百を超えたあたりから対応が面倒になって、Akismetを入れたりしてしのいでいたけれど、さらに面倒になったので直接的な手段にでることにしました。

  • Step 1. コメント許可を外す
  • Step 2. 「comments_template();」をコメント(無効)
  • Step 3. wp-comments-post.phpへのアクセス制限

Step 1. コメント許可を外す

コメントの許可を外す程度では、非表示になっているだけで実際にはタグとして存在するようです。まぁそうか。


Step 2. 「comments_template(); 」をコメント(無効)

テンプレート(固定や投稿)それぞれのテーマ編集で、上記関数が
  • <?php comments_template(); ?>
のように記載されてます。こいつがコメントを構成するHTML等を出力しているわけですね。これをコメントして止めます。

  • <?php // comments_template(); ?>
// はPHPにとってそれ以降から行末までをコメントするという意味があります。
消してもいいんですが、また戻すときに困るのでコメントしておくのがいいですね。

でもこれでも、コメントスパムは止まらない場合があります。
wp-comments-post.php
に直接アクセスされるケースのようですね。

Step 3. wp-comments-post.php へのアクセスを制限する

Webサーバーとしてファイルへのアクセスを制限するっていう方法です。
一番確実そうです。

.htaccessにファイルへの制限(<Files>の記載が許可されている場合のみ)が出来るなら、

<Files  "wp-comments-post.php">
  Order Deny,Allow
  deny from all
</Files>

として全拒否するか、

<Files ~ "wp-comments-post.php$">
  Order Deny,Allow
  allow from IPアドレス(ドメイン)
  deny from all
</Files>

として一部だけオッケーにするか

<Files ~ "wp-comments-post.php$">
  Order Allow,Deny
  deny from IPアドレス(ドメイン)
  allow from all
</Files>

として一部だけダメにするか。

などが選択できます。

なおドメインの場合には一部でもオッケーです。

allow from .jp 

.jpがつくドメインからのアクセスならOK。


0 件のコメント:

コメントを投稿

Google+ Badge