【WordPress】「/wp-json」へのアクセスを、国内のIPアドレスに制限する方法【REST API】

  • 投稿 : 2017-02-28
【重要】WordPress「4.7」「4.7.1」における緊急性の高い脆弱性およびセキュリティ対策の実施について - 2017/02/07 | レンタルサーバー【エックスサーバー】
WordPress 4.7 及び 4.7.1 の脆弱性対策について(2月13日 更新) - 2017年02月08日 - レンタルサーバー JSN
WordPressの「REST API」に対する国外IPアドレスからのアクセス可否を変更できる「REST API アクセス制限」機能追加のお知らせ|ネットオウル

レンタルサーバ側で提供されている場合は、その機能を使うのがよいと思う。

提供されてないレンタルサーバーで、「.htaccess」をつかってお手軽にやりたいなということで試してみました。ただし、私自身の知識不足でこの方法よりも普通?な方法があるかも(というか、教えてください)。

.htaccessレベルで拒否できると、負荷はマシなはずなので・・。

.htaccessで/wp-jsonを拒否する


http://blog.example.com/wp-json/wp/v2/posts?filter[s]=%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A

みたいな感じでブラウザからアクセスしたら、動作してるかどうかとか、拒否されてるかどうかとかはわかるかと思う。

すべて拒否

wp-jsonフォルダを作成する
・フォルダの中に、以下のような.htaccessファイルを作成

order deny,allow
deny from all

海外IPだけ拒否(国内IPだけ許可)

wp-jsonフォルダを作成する
・フォルダの中に、以下のような.htaccessファイルを作成

手順は同じで、.htaccessファイルだけ違う

order deny,allow
deny from all
Allow from 国内IP
Allow from 国内IP
#ここに国内IPをすべてかく

IPアドレスで日本国外(海外/外国)からのアクセスを制限する.htaccess CGI's

国内IPすべて書いたものは、上記のURLから取得できるのでそれを利用します。

・日本への割り当IPアドレスはAPNIC(アジア・太平洋地域のIPアドレス割り当てを行なう機関)にて現在公開しているデータを取得しています。
・データを取得するファイルは「http://ftp.apnic.net/stats/apnic/delegated-apnic-latest」からか、取得できなかった場合、「http://ftp.apnic.net/stats/apnic/delegated-apnic- [yyyymmdd]」の最新ファイルからとなります。
IPアドレスで日本国外(海外/外国)からのアクセスを制限する.htaccess CGI's

国内割り当てのIPは、apnic.netのデータを利用しているみたいです。

プラグインでREST APIを無効にする

Disable REST API — WordPress Plugins

上記プラグインで、機能自体は無効にできると思います。
ただ、無効にしてもwordpress(PHP)まで呼ばれるので負荷はかかると思います。



スポンサーリンク