ブログ丸パクリプラグイン FeedWordPress からのアクセスを拒否するために .htaccess を設定し、自分のサイトを守ろう

更新日: 公開日:2015/09/14
FeedWordPress からのアクセスを拒否する

FeedWordPress は RSS や Atom のフィード情報から、自動的に WordPess のエントリーを生成するプラグインです。用途としてアンテナサイトを作成したり、アメブロで作成した自身のブログを WordPress へ転送して、WordPress で構築したブログを育てるために利用されているケースが多いようです。

自分自身のサイトに対して利用する限りは問題ありませんが、全くの赤の他人の投稿内容を、自分自身の WordPress に丸ごと取り込むとなると、それは 著作権侵害 になります。仮に外部へ公開するつもりは無くても、検索サイトにインデックスされてしまうと Yahoo! や Google からアクセス出来るようになってしまいます。

FeedWordPress を利用してブログの記事がパクられた

先日、ここのサイトが FeedWordPress を利用している別のサイトから、フィード情報を抜かれ、丸ごと転載される事件が起こりました。発覚したきっかけは、検索サイトで自身のサイトを検索したら偶然見つかったので、もし気付かなかったら延々とこのブログのコピーサイトが勝手に作られる自体に陥っていたでしょう。

現段階ではフィード情報が転載されないよう処置を施してあります。これまでの経緯については、過去の記事を参照ください。

今までの対策は FeedWordPress に対する根本的なものではない

無断転載されたサイトに対して、これまで以下の対策を行ってきました。

  • 対象のサイトから画像を直リンクされた場合に、別の画像へ差し替え
  • 該当エントリーの画面を開いたときに HTML のコードを差し替える JavaScript のコードを仕掛け、プログラム含めパクらせた
  • 特定の IP アドレスからフィード情報にアクセスがあった場合、偽物のフィード情報へリダイレクトさせた ← いまここ

しかしこれでは、肝心の FeedWordPress に対する対策ではないため、また別の IP アドレスからアクセスされた場合に、フィード情報を丸ごと持って行かれてしまいます。最終的な対策として名案は無いものか考えた結果、ある結論に至りました。

ユーザーエージェント情報を元にアクセス拒否をすれば良い。

.htaccess へユーザーエージェント情報を元にアクセス拒否をする方法

FeedWordPress がフィード情報を読み込む際、以下のような Web サーバーへのアクセスログを残します。 (以下のログの IP アドレスはダミーです。)

192.168.11.156 - - [06/Sep/2015:04:50:03 +0900] "GET /feed/ HTTP/1.0" 200 3029 "-" "FeedWordPress/2015.0514 (aggregator:feedwordpress; WordPress/4.2.4 + SimplePie/1.3.1; Allow like Gecko; +http://feedwordpress.radgeek.com/) at (アクセス元のサイトドメイン)"

一般的なレンタルサーバーでも Web サーバーのアクセスログは取得できます。アクセスログの読み方を含め、以下の記事に掲載していますので参考にしてみてください。

上記ログでは、一番最後にダブルクォーテーションで囲まれている値がユーザーエージェントの情報となります。ここに直接 FeedWordPress と出力されているのがポイントです。あとはこの情報を元に、アクセスを拒否するように設定すれば OK です。

.htaccess を取得する

WordPress を利用している場合、ルートのフォルダ (wp-admin や wp-content のフォルダが格納されているフォルダ) に .htaccess ファイルが格納されているので、FTP ソフトでダウンロードしてください。

ファイルを更新したあとは、同じように FTP ソフトを利用してファイルをアップロードし、上書きする必要があります。

.htaccess を編集し、アクセス拒否のための設定を追記

ダウンロードしたファイルをテキストエディタで開き、以下の内容を追記してください。

FeedWordPress からのアクセス拒否設定
RewriteEngine On
SetEnvIfNoCase User-Agent "FeedWordPress" ua_key=on
RewriteCond %{ENV:ua_key} on
RewriteRule ^(.*)$ - [F,L]

追記する位置は、WordPress から標準出力されている情報より上に足してください。具体的には「# BEGIN WordPress」と記載されている行より上を指します。記載する順番を間違えると、先に標準出力側でリダイレクト処理が走ってしまうため、正常にブロックすることができません。

実際に中でどのような処理をしているのか説明しましょう。

RewriteEngine On

URL をリダイレクトするためのリライト機能が使えるように、エンジンをオンにします。既にこの記述が書かれている場合は、省略して結構です。

SetEnvIfNoCase User-Agent "FeedWordPress" ua_key=on

ユーザーエージェントに FeedWordPress が含まれる場合、変数 ua_key に on をセットします。

RewriteCond %{ENV:ua_key} on

リライトの実行条件です。変数 ua_key がオンの場合に、リライト処理を行います。

RewriteRule ^(.*)$ - [F,L]

リライトの実行条件に合致した場合に実施するリライト処理です。ここでは、全てのアクセスを遮断するように設定しています。

このように設定すると、ユーザーエージェントに FeedWordPress が含まれるアクセスに対して、http エラー 403 (アクセス不可) を返却するので、フィード情報へのアクセスも遮断されます。

これで見ず知らずの人に、FeedWordPress プラグインを利用して勝手にフィード情報から記事を生成されずに済みます。プラグインに対しての対策はできたので、あとは同じような事象が再発せず平和な日々を過ごせるのを願うばかりです。

【追記】念には念を入れて、RSS の内容も more タグまで出力するように改造して、自身のページへリンクで飛べるようにもしました。

\ この記事をシェアする /

このブログの運営者

NJ

Web系メインで従事していた元システムエンジニア。現在は個人事業主として独立。Webサイト運営における「困った問題」の解決方法をブログで発信。Web サイト運営、ポップデザインや動画制作など、パソコンでモノづくりをしている。