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 |
スクリーンショットに示すように、必要に応じて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 を使用すると、開発者はリモート コンピューターまたは Web サイトで実行されている外部アプリケーションから WordPress コンテンツを作成、読み取り、更新できます。WP REST API は、WordPress バージョン 4.7.0 以降ではデフォルトで有効になっています。
続きを読む: WP REST API へのアクセスを制限することが重要な理由
開発者向けドキュメント: https://developer.wordpress.org/rest-api/
任意の数の Web サイトの REST API 設定をリモートで管理できることをご存知ですか?メインのCerber.Hub Web サイトでメイン Web サイト モードを有効にし、他の Web サイトで管理対象 Web サイト モードを有効にして、1 つのダッシュボードからすべての WP Cerber インスタンスを管理します。
WordPressのセキュリティを強化する次のステップ
- スパムユーザー登録をブロックする方法
- スパムフォームの送信をブロックする方法
- WordPressユーザーをブロックする方法
- 特定のIPアドレスからのアクセスをブロックする方法
- 特定のユーザー名の使用を無効にする方法
そもそも、Cerber Security とは何でしょうか? これは、シンプルでありながら効果的なログイン試行回数制限プラグインから進化した、WordPress 向けの完全なセキュリティ ソリューションです。
HansR ( )
OK. But how do I know whether a plugin uses the REST API so I have to add it to the namespace access-list?
Gregory ( )
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.
HansR ( )
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.