REST API のエンドポイントにアクセスしようとした際に「403 Forbidden」が返ってきた場合、サーバーまたはセキュリティ設定が通信をブロックしている可能性が高いです。特に さくらインターネットのレンタルサーバーでは、WAF(Web Application Firewall)やセキュリティプラグインが原因になっていることが多いです。
以下の手順で原因を切り分け&対処してみてください。
1. WAF(Webアプリケーションファイアウォール)を確認
さくらインターネットでは WAF が標準で有効になっています。これが REST API をブロックすることがあります。
WAFの確認・一時無効化手順:
- さくらのレンタルサーバ コントロールパネル にログイン。
- 「ドメイン設定」または「WAF設定」などを選択。
- 問題が出ているドメイン(例: chocolat-au-lait.com)を選択。
- 「WAF設定」を開き、「WAFを無効」にして保存。
- 数分後に REST API のエンドポイントに再度アクセスしてテスト。
※改善したら、WAFのログを確認し「特定のルールのみ無効化」するように調整するのが理想です。
2. セキュリティ系プラグインを確認
以下のようなプラグインが REST API を制限していることがあります。
- Wordfence
- iThemes Security
- All In One WP Security
- Cerber Security
対処方法:
- これらのプラグインが有効なら、一時的に無効化して REST API が使えるか確認。
- プラグインに「REST API 制限」や「XML-RPC 無効化」などの設定があれば、それをオフにしてみる。
3. .htaccess ファイルの設定を確認(上級者向け)
.htaccess
によって wp-json/
や wp/v2/
へのアクセスがブロックされていることもあります。
例:
apacheconfコピーする編集する<Files "wp-json">
Order deny,allow
Deny from all
</Files>
このような記述があればコメントアウトまたは削除してみてください。
4. REST API の確認方法(テスト)
以下のURLをブラウザや Postman などで開いてみてください:
bashコピーする編集するhttps://chocolat-au-lait.com/wp-json/wp/v2/types/post?context=edit
※403が出るなら、まだ何かがブロックしています。
5. 応急処置(ブロックエディタを使わない)
もしどうしても直らない場合は、一時的に「クラシックエディター」に戻すという選択肢もあります。
最終手段:サポートに問い合わせ
さくらインターネットのサポートに以下のように問い合わせてみてください:
REST API エンドポイント(
https://chocolat-au-lait.com/wp-json/wp/v2/types/post?context=edit
)にアクセスすると 403 エラーになります。WAFの影響が考えられるでしょうか?WAFのログには何か記録されていますか?
まとめ
桜サーバーのセキュリティ(WAF)が強力なのでWordPressで問題として検出されているだけなので、私はこの警告に関しては気にせずそのまま使うことにしました。
セキュリティに関しては、操作などの支障が無い限りは最高レベルにするべきだと思っています。
とある、オンラインゲームで二重認証をしていたのですがそれもアカウントの乗っ取りにあい、長時間と手間暇掛けて手に入れたアイテムなどが亡くなったりしました。(その後運営に報告し復旧し手頂けましたが)
Blogの運営に関しては、そのページにウイルスなどを仕込まれたり、意図しない情報を発信されたり、何より時間や手間暇掛けて作り上げた物を無くしてしまうかもしれない可能性が少しでも減るならとかんがえてそのままにした方が良いのでは無いかと思います。きになりますがね・・・
この記事が、皆様のBlogの運営の手助けになれば幸いです。