WordPressのREST APIを無効化した話

WordPressは4.7系よりREST APIをサポートしているらしいですが、無効化されているものだと思って放置していた所、全世界に公開されているという悲しい状況になっていたのでそのメモ。

WP REST APIのAPIルートは https://example.com/wp-json/ と認識しておりまして、そこを叩いても無反応だったのでデフォルトOFFになっているものだと勘違いしていました。

ただこのURI、WordPressのパーマリンクを有効にしないと叩けないものらしく、叩けないから無効になっているかと思っていたら、API自体は別に無効になっていなかったというのが今回のお話。
https://example.com/?rest_route=/ だと普通に叩ける状況でした。
https://example.com/?rest_route=/wp/v2/users/ からユーザ名が取得できてしまう状態。ひええ。

現在はdisable REST APIプラグインを導入して無効化済み。
このプラグインもAPIを完全に殺すのではなく、ログインしていない状態でのアクセスを拒否するだけのようなのには注意が必要そう。というかログインしたまま動作確認して、プラグイン有効になってるのにAPI叩ける!なんで!!!って10分ぐらい悩みました。
いや、API真面目に使うのだったら当然そうなりますよねという話ではありますが、私がアホ過ぎる。

どうでもいいのですけど、WordPress的にはログイン名って特に隠す必要性感じていないのでしょうか。
APIで垂れ流されてるのがデフォなのもそうですし、authorページでもサクッと表示出来てしまいますし。
ログイン情報の一つではあるので積極的に表に出すスタイルはちょっと気持ち悪いなと思う今日このごろでした。