この記事では WordPress のユーザAPIのエンドポイントを閉じておくべきというセキュリティ関連の備忘録を記載します。
概要
WordPress は何もしないでいると、APIにアクセスできてしまいます。
自身のサイトを WordPress で構築している場合、API アクセスはデフォルトで有効化されているという罠があります。
/wp-json/wp/v2/users
を末尾につけて実行してみてください。
ユーザ一覧が表示されていたら、やばいです。
対応
function filter_rest_endpoints( $endpoints ) {
if ( isset( $endpoints['/wp/v2/users'] ) ) {
unset( $endpoints['/wp/v2/users'] );
}
if ( isset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] ) ) {
unset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] );
}
return $endpoints;
}
add_filter( 'rest_endpoints', 'filter_rest_endpoints', 10, 1 );
これを function.php に加えます。
この対応後に {"status":404}
が json に表示されるようになるはずです。
ぼやき
世間では「誰でもすぐに WordPress でブログ収益化!」みたいに謳い、初期構築の手順を紹介する記事は多くみられます。
しかし、セキュリティまで言及している記事は少ないように感じます。
今や AI も用いられ、攻撃手段も多様化している時代です。
自分の身は自分で守らないとですね。
コメント