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

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

2021 10/30
Web
WordPress
2022年8月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テーマを使っています

SWELL
圧倒的な使い心地を追求する国産WordPressテーマ『SWELL』の公式販売サイト
Web
WordPress
ushui
宮城県生まれのエンジニアです。
都内でフリーランスを営んでいます。

カレー、技術、音楽、音ゲーが好き。
音楽面に関しては、特にBMSとVOCALOIDから生まれた同人音楽家たちに強く影響を受けました。
新着記事
  • WP Cerber Securityをアップデートサーバーを変更
    WP Cerber Securityのインストールと簡易的な設定
    2023年1月4日
    Web
  • Amazon Linux 2でRemiリポジトリのPHPを8.0から8.1に更新
    Amazon Linux 2でRemiリポジトリのPHPを8.0から8.1に更新
    2023年1月3日
    Web
  • 嫌われ者のJASRACは「MIDI狩り」から何を学んだか?
    嫌われ者のJASRACは「MIDI狩り」から何を学んだか?
    2022年12月31日
    音楽
  • アーティストに入るカラオケ印税にJASRACが必要な理由
    アーティストに入るカラオケ印税にJASRACが必要な理由
    2022年12月31日
    音楽
  • REVIVE USB ADVANCEのパッケージ
    アナログ入力に対応したREVIVE USB ADVANCEとカスタム版
    2022年11月14日
    ハードウェア
ジャンル
  • テクノロジー全般
    • Web
    • アプリ
    • ゲーム開発
    • ハードウェア
  • インターネット考古学
  • ゲーム
  • 音楽
  • WordPress
  • REVIVE USB
  • その他
アーカイブ
  • 2023 (2)
  • 2022 (24)
  • 2021 (7)
  • 2017 (7)
  • 2016 (5)
目次
  1. Top
  2. テクノロジー全般
  3. Web
  4. WP CerberでREST APIを無効にできない件について
目次