WordPressからhttp/1.0スパマーを本気で追い出す

いくらAkismetさんがいたところで、WordPressへのスパム襲来が止むわけではありません。今日こそはスパムを排除してやる…という人に。効果の保証はありません。

目次

  • .htaccessを使って排除
  • wp-comments-post.phpを改造して排除

.htaccessを使って排除

今回は本気で排除にかかるので、htaccessを使ってスパマーの襲来を食い止めたいと思います。スパマーたちはwp-comments-post.phpを直接叩いてくる場合もあると思われるので、そちらにアクセス規制を敷きましょう。記述例は以下 [VIM] #HTTP/1.0のユーザーを判定して環境変数をセット SetEnvIfNoCase Request_Protocol “HTTP/1.0” http10 #アクセス制御の設定 order allow,deny #一旦全部許可する allow from all #後からHTTP/1.0な人を弾く deny from env=http10 [/VIM] 上記の例は、海外の通常ユーザーからのコメントもきちんと受け付けられるように、最低限のアクセス規制になっています。日本国内からのコメントのみの場合はこんな感じかもしれません。 [VIM] #日本のユーザーを判定する SetEnvIfNoCase Remote_Host “(.jp|.bbtec.net)$” japaneseuser SetEnvIfNoCase Request_Protocol “HTTP/1.0” !japaneseuser #アクセス制御の設定 order deny,allow #一旦全部拒否する deny from all #日本のユーザーだけ許可する allow from env=japaneseuser [/VIM] 海外からのコメントを完全に遮断します。それが嫌な場合は、前述の最低限のアクセス規制のものを利用し、防御を突破したスパマーのIPアドレスを個別にdenyしていけばいいと思います。

wp-comments-post.phpを改造して排除

こちらではwp-comments-post.phpの中身を編集します。バックアップを忘れずに。編集内容は [PHP] if ( ‘POST’ != $_SERVER[‘REQUEST_METHOD’] ) { header(‘Allow: POST’); header(‘HTTP/1.1 405 Method Not Allowed’); header(‘Content-Type: text/plain’); exit; } [/PHP] ファイル冒頭のこのコードに追記します。↓ [PHP] if ( ‘POST’ != $_SERVER[‘REQUEST_METHOD’] || ‘HTTP/1.1’ != $_SERVER[“SERVER_PROTOCOL”] ) { header(‘Allow: POST’); header(‘HTTP/1.1 405 Method Not Allowed’); header(‘Content-Type: text/plain’); exit; } [/PHP] 一番最初の条件判定に、HTTP/1.1かどうかの判定を追加しました。それだけです。効果の保証はできません。

このブログを応援する・寄付する

当ブログでは暗号通貨による寄付を募っております。

モナゲボタン モナゲボタン

Bitcoin:

Monacoin:

Litecoin: