ぱんぶろ

パンジーの「いいね!」ブログ

CloudFlareを導入してからWordPressログイン時に”403 forbidden”が出るのはXREAの仕様だった!

      2016/04/15  

medium_7095151049photo credit: ammiiirrrr via photopin cc

どうも。パンジー(@panzee8)です。

みなさんお待たせしました。
ついに。分かりましたよ!

「403 forbidden」の出る理由が。

「何言ってんだこいつ」という人のために、
ことの経緯を簡単に説明すると、

WordPressで構築したサイトの表示速度を速くしたい!

CloudFlareってサービスが良いという話をいろんな所から聞き早速導入。

おぉ、確かに表示速度が速くなる!

が、WordPressで投稿やプラグイン更新などをすると”403 forbidden”。
さらに、管理画面にログインしようとしても”403 forbidden”と何もできない状態に。

絶望。

といった感じです。

なんとか急ごしらえの回避策(⇒WordPressにログインできずに”403 forbidden”が出るならCloudFlareを開発者モードにするといいかも。)は見つけたものの、
根本的な解決策は見つからないまま、不安定なWordpressを使っていたんです。

が、
ついに見つけましたよ!(冒頭に戻る。)

思わず「よっしゃああああああ」と声をあげるわたし。

原因はやはりCloudFlareを導入したこと。
そしてレンタルサーバとして使わせてもらっているXREAサーバの仕様にありました。

スポンサード リンク

簡単なCloudFlareの仕組み

順を追って説明していきます。
まずは、簡単なCloudFlareの仕組みからです。

といってもわたしも深く理解しているわけじゃないので、ホントに上辺だけの説明です。

CloudFlareをざっくり言うと、キャッシュサーバです。

動的にアクセスする必要のあまりない画像であったり、htmlファイルを
CloudFlareの複数のサーバに置いておくことで負荷を分散させアクセス(表示)を高速化させているわけです。

さらに、訪問者は今までは直接XREAサーバ(わたしのサイトの場合)に要求していたんですけど、
CloudFlareを導入することでキャッシュサーバ経由でXREAサーバにつながることになります。

【イメージ】
[CloudFlare導入前]
訪問者 ⇔ XREAサーバ

[CloudFlare導入後]
訪問者 ⇔ CloudFlareサーバ ⇔ XREAサーバ

このCloudFlareサーバをはさんでXREAサーバにアクセスすることが問題だったわけです。

XREAサーバーの仕様

CloudFlareサーバは海外のサーバで、
IPアドレスは海外のものになります。

XREAサーバーの仕様として、

「海外のIPアドレスからのトラックバック、コメントなどのPOST処理制限」

があります。

一部抜粋すると、

動的に変わるIPアドレスから 不正な投稿(トラックバック・コメントスパム、掲示板へのスパム目的のPOST処理)があるため、自動的にサーバー側でブロックを掛けさせていただく場合があります。

ということみたいです。
POST処理というのは、ざっくり説明するとボタンを押した時の処理のことです。

例えば、[ログイン]ボタン、[投稿]ボタン、プラグインの[更新]ボタンであったりします。

この海外からのIPアドレス(動的に変わる)ものついては、
XREAサーバのスパム対策としてブロックをかけていたわけですね。

その時に表示されていたのが、アクセス拒否を表す「403 forbidden」だったということです。

403 forbiddenの回避方法

動的に変わるIPアドレスでもアクセスできるように、
.htaccessに以下のコードを追記してください。

<Limit POST>
order allow,deny
allow from all
</Limit>

 

これで、CloudFlareを使っていてもアクセス拒否されることはなくなります。

正直スパム対策としてアクセス制限していたのに、
それを外すのはどうかと思いますが、とりあえずこれで様子を見てみます。

今のところスパム的なアクセスは確認できていません。

まとめ

わたしのような行き当たりばったり的に作業をしていると、
必ずこういったことは起きますね。

調査がめちゃくちゃ面倒くさかった・・・。
何時間費やしたことやら。

とはいえ、

よそのサービスを使わせてもらっている身としては、
仕様をしっかりと理解しておくべきだとは思うし、
そういった意味では、いい勉強の機会になりました。

わたしと同じような状況で困っている人は、
レンタルサーバの仕様を疑ってみてくださいね。