REST APIを使うと、外部からWordPressのサイトデータを取得・投稿・編集することができます。
たとえば、サイトドメインの後に「/wp-json/wp/v2/」を付けると、このようにサイトのデータがずらっと表示されます。
2017年には脆弱性が発覚し、多くのサイトが改ざんの被害を受けました。
以降WordPressのアップデートにより脆弱性はないようですが、心配な場合はREST APIを無効化しておくと良いです。
REST APIを無効化する方法
functions.phpにこのコードを追記します。
function disable_rest_api() { return new WP_Error( 'disabled', __( 'REST API is disabled.' ), array( 'status' => rest_authorization_required_code() ) ); } add_filter( 'rest_authentication_errors', 'disable_rest_api' );
すると、アクセスされても401や403で返すので安心です。
※WordPress6.1.1で確認済
REST APIを無効化するデメリット
プラグインの動作に影響がある場合がある
代表的なのはこの3つ。
- contact-form-7
- akismet
- Jetpack
contact-form-7は、REST APIを無効化してもWordPress6.1.1で問題なく動作しました。
akismetとJetpackは使っていないので不明。
もし不都合が生じた場合は、わいひらさんの特定のプラグインを除いてREST APIを無効にする方法を参考にすると良いかと。
サイトヘルスに表示される
これウザいので「表示オプションでサイトヘルス自体をオフ」にしています。