Menu
Menu
Blog
ブログ
About Site
サイトについて
Profile
プロフィール
Activity
活動
Works
制作
Contact
お問い合わせ
音ゲー好きなエンジニアの個人事務所。気ままにブログを更新しています。
Otogeworks
  • Blogブログ
  • About Siteサイトについて
  • Profileプロフィール
  • Activity活動
  • Works制作
  • Contactお問い合わせ
Menu

WP CerberでREST APIを無効にできない件について

2021 10/30
Web
WordPress 調査
2022年2月2日

WP Cerber SecurityでREST APIを制限する設定を行ったにも関わらず「/wp-json/wp/v2/users」にアクセスできてしまう事象です。他のREST APIのURLにもアクセスできてしまいます。
本来は以下の403エラーが出ます。

WP Cerberのアクセス禁止エラー
RIDを隠す必要はない気がしますが、なんとなく隠しました

執筆時点の以下の環境で確認しました。

  • Nginx 1.20
  • WordPress 5.8.1
  • PHP 8.0.12
  • WP Cerber Security 8.9.3
目次

WP Cerberの設定

WP CerberのREST API設定

画像の通り、以下が全てONになっている状態です。

  • REST API を介したユーザーのデータへのアクセスをブロックする
  • 次のいずれか以外の WordPress REST API へのアクセスをブロック
  • ログインユーザーに REST API を許可

また、[メイン設定]にある[セキュリティエンジンのロード]は通常モードになっています。

対処法

結論から述べると、Nginxのconfファイルのserverブロックに以下を記述することで解決しました。

    location ^~ /wp-json/ {
        rewrite ^/wp-json/(.*) /index.php?rest_route=/$1 last;
    }

上記を記述することで「/wp-json/」や「/wp-json/wp/v2/users」にアクセスした際に403ページが表示されます。

修正内容について

「/wp-json/wp/v2/users」でアクセスできてしまっていたのですが、「?rest_route=/wp/v2/users」でアクセスすると期待通り403ページが返ってくる状態でした。なので/wp-json/xxx/を?rest_route=/xxx/に書き換えることで対応しています。

なお、WP CerberにはREST APIが有効になる条件があります。

  • 管理者としてログインしていること
  • 自分のIPアドレスをホワイトIPアクセスリストに入れていること
  • (ロールを設定している場合)管理者以外のロールのユーザーでログインしていること

その他、名前空間に該当するREST APIである場合は有効する設定がありますが、「/wp-json/wp/v2/users」には適用されません(明記されてはいませんが)。

一見アクセスできてしまうように見えても、上記の条件に当てはまっている可能性があります。
本当にアクセスできない設定になっているか否かは以下の手順を踏んで確認してください。

  • ホワイトIPアクセスリストから自分のIPアドレスを削除
  • ブラウザのシークレットウィンドウを立ち上げてアクセス

あとがき

NginxのFastCGI Cacheとかも疑って消してみたりしていたのですが、好転しませんでした。
WP Cerberのフォーラムなどを検索してもこのような現象は見られなかったため、環境固有の問題と思われます。何が悪さをしているか分からなかったのでとりあえず備忘録として残します。

このサイトはSWELLテーマを使っています

圧倒的な使い心地を追求する国産WordPressテーマ『SWELL』の公式販売サイト
Web
WordPress 調査
ushui
宮城県生まれのエンジニアです。
都内でフリーランスを営んでいます。
カレーと音ゲーが好き。
最近の投稿
  • コンテキスト(右クリック)メニューの新規作成からExcelが消えた件2022年4月20日
  • Slackが真っ白で何も表示されない場合の対処法2022年4月7日
  • MX Master 2Sでカーソルが動かなくなった(分解なしで対応)2022年4月7日
  • 1万回のQuaternion * Vector3の処理速度を上げてみる2022年3月30日
  • Cloudflare Registrarでドメイン取得+メールを2000円運用2022年2月28日
カテゴリー
アーカイブ
目次
  1. Top
  2. 情報技術
  3. Web
  4. WP CerberでREST APIを無効にできない件について
目次
閉じる