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

2015/09/14

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

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

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

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

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

ブログ記事がソースごと丸パクリされる悲しい出来事があったので対策してみました
2010 東京オリンピックのロゴのパクリ問題が熱冷めやらぬ昨今ではありますが、当ブログもパクリ被害にあう事件が起こってしまいました。たまたまこのブログの記事の検索順位...
【パクリサイト対策】投稿内に対策用の Javascript を仕掛けておいたら、予定通り丸パクリしてくれた
以前のエントリーで、ブログの投稿内容が関西弁に変換され top-news.red に丸パクリされ無断転載しているとお伝えしましたが、その続報になります。...
【無断転載対策】ブログ記事をパクらせないための対策を仕込み、ようやく転載されなくなった
NJ-CLUCKRE の記事が無断転載されていることに気付いたのが、今から 2週間前です。運営者に直接連絡する術も無く、直リンクの画像を入れ替えてみたり、無理...

今までの対策は 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 サーバーのアクセスログは取得できます。アクセスログの読み方を含め、以下の記事に掲載していますので参考にしてみてください。

Apache の Web サーバー アクセスログの記載内容を把握してログ解析しよう
一般的なホームページといった Web サイトの作成や、Web アプリを運営していく上で、何か問題が生じたときには、ログを解析する作業が必要になります。全てのアクセス情...

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

.htaccess を取得する

WordPress を利用している場合、ルートのフォルダ (wp-admin や wp-content のフォルダが格納されているフォルダ) に .htaccess ファイルが格納されているので、FTP ソフトでダウンロードしてください。ファイルを更新したあとは、同じように FTP ソフトを利用してファイルをアップロードし、上書きする必要があります。

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

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

RewriteEngine On
SetEnvIfNoCase User-Agent "FeedWordPress" ua_key=on
RewriteCond %{ENV:ua_key} on
RewriteRule ^(.*)$ - [F,L]

【2015.10.28 追記】
追記する位置は、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 タグまでとして自身のページにリンクで飛べるようにしました。

WordPress の RSS をカスタマイズして more タグまでの内容を出力し、元記事へのリンクを追加する方法
WordPress の RSS や Atom のフィード情報の設定は、「全文を表示」または「抜粋のみを表示」の二択となっています。以前、RSS からブログ記事...

Name :
気力・体力勝負なシステム業界のエンジニアを経て、個人事業主として独立。Web サイト運営、動画制作など活動の場を広げています。目指すところへの道のりは険しいですが、自分が自分らしくあるために、一歩ずつ進んでいきます。

このブログでは、困ってたどり着いた人に、分かりやすく答えを提供できるように心掛けています。更新情報は、Twitter や Facebook ページを参照ください。よろしければフォローお待ちしています。

プロフィール詳細 Twitter @_NJ69_
Facebook ページ NJ-CLUCKER シェア
このブログが役に立ったら
「いいね!」お願いします
PAGE TOP ↑