WordPress REST APIへのアクセスを制限する
WordPress REST APIを制御する時が来ました
English version: Restrict access to the WordPress REST API
WP Cerber Security を使用すると、WordPress REST API へのアクセスを制限または完全にブロックできます。これはデフォルトで有効になっています。保護を有効にするには、「強化」タブに移動し、 「次のいずれかを除き、WordPress REST API へのアクセスをブロックする」を有効にします。これにより、以下の設定フィールドでアクセスを許可するか、ホワイト IP アクセスリストに IP アドレスを追加しない限り、REST API へのアクセスがブロックされます。
Contact Form 7、Jetpack、または REST API を利用する他のプラグインを使用する場合は、以下に説明するように、REST API 名前空間をホワイトリストに登録する必要があります。
特定のREST API名前空間へのアクセスを許可する
REST API名前空間はリクエストURLの一部であり、WordPressが特定のREST APIリクエストを処理するプログラムコードを認識できるようにします。名前空間を取得するには、REST URL内の/wp-json/と次のスラッシュの間の文字列を取得します。REST APIを利用するプラグインはすべて、独自の名前空間を使用することに注意してください。以下の表は、いくつかのプラグインの名前空間を示しています。
| プラグイン | 名前空間 |
| お問い合わせフォーム7 | contact-form-7 |
| カルデラフォーム | cf-api |
| ヨーストSEO | yoast |
| ジェットパック | jetpack |
| 重力フォーム | gf |
スクリーンショットに示すように、必要に応じてREST APIの名前空間例外を指定します。
ユーザーにREST APIの使用を許可する
承認された(ログインしている)WordPress ユーザーが制限なく REST API を使用できるようにするには、 「ログインしているユーザーに REST API を許可する」を有効にします。
IPアドレスによるWordPress REST APIへのアクセスを制限する
特定の IP アドレスまたは IP ネットワークからの REST API へのアクセスを許可するには、それらをホワイト IP アクセス リストに追加します。
特定の IP アドレスまたは IP ネットワークからの REST API へのアクセスを完全にブロックするには、それらをブラック IP アクセス リストに追加します。
続きを読む: IPアクセスリストを使用してWordPressを保護する
REST APIユーザー列挙を停止する方法
ユーザーデータへのアクセスをブロックし、REST API経由のユーザー列挙を停止するには、「強化」タブの「REST API経由のユーザーデータへのアクセスをブロック」設定を有効にする必要があります。このセキュリティ機能は、ハッカーがサイトをスキャンしてユーザーログイン情報や機密性の高いユーザーデータを入手するのを検知し、防止するように設計されています。
有効にすると、CerberはREST APIへのすべてのリクエストをブロックし、HTTP 403エラーを返します。これらのイベントはアクティビティタブで監視できます。これらのイベントは「REST APIへのリクエストが拒否されました」としてログに記録されます。
WordPress REST API 経由のユーザーデータへのアクセスは、次の 2 つの場合に常に許可されます。
- 管理者アカウントの場合、REST API経由の「ユーザー列挙の停止」が有効になっていると、管理者ロールを持つすべてのユーザーが常にユーザーのデータにアクセスできます。
- ホワイトIPアクセスリスト内のすべてのIPアドレス
REST API とは何ですか?
簡単に言えば、2つの異なるコード(アプリケーション)が相互に通信し、標準化された方法でデータを交換できるようにする技術です。REST APIを使用すると、開発者はリモートコンピューターやウェブサイトで実行されている外部アプリケーションからWordPressコンテンツを作成、読み取り、更新できます。WordPressバージョン4.7.0以降では、WP REST APIがデフォルトで有効になっています。
続きを読む: WP REST APIへのアクセスを制限することが重要な理由
開発者向けドキュメント: https://developer.wordpress.org/rest-api/
任意の数のウェブサイトのREST API設定をリモートで管理できることをご存知ですか? Cerber.Hubのメインウェブサイトでメインウェブサイトモードを有効にし、他のウェブサイトで管理対象ウェブサイトモードを有効にすると、1つのダッシュボードからすべてのWP Cerberインスタンスを管理できます。
WordPressのセキュリティを強化する次のステップ
- スパムユーザー登録をブロックする方法
- スパムフォームの送信をブロックする方法
- WordPressユーザーをブロックする方法
- 特定のIPアドレスからのアクセスをブロックする方法
- 特定のユーザー名の使用を無効にする方法
Cerber Securityとは何でしょうか?これは、シンプルながらも効果的なログイン試行回数制限プラグインから進化した、WordPress向けの包括的なセキュリティソリューションです。

OK. But how do I know whether a plugin uses the REST API so I have to add it to the namespace access-list?
1. From the documentation on a plugin.
2. Checking for REST API requests on the Live Traffic page: just click the small “REST API” button above the table.
3. If you know the REST API namespace that is used by a plugin you can search for requests by entering that REST API namespace on the Advanced search form in the “URL contains” field.
4. Disable REST API in the settings completely and check how the plugin works. If the plugin doesn’t work anymore, that means it uses REST API. To find out its namespace look for “Request to REST API denied” events the Activity page.
Mmm… thnx, but that does not really make me happy. I checked e.g. the contact form and that worked because the REST API works for the administrator. For me small blogger with 22 plugins operational this becomes a nuisance and a lot of time and work. Can’t this be done automatically eg by suggesting or something?
And while we are talking, why should I not permit /oembed/ as a permitted namespace? It seems to be used by a robot (and of course Cerber blocks it correctly 🙂 ).
For other questions I will use the support blog as I normally do.
Sorry for the kind of abuse of this blog. Won’t do it again.