Add functions PHPでは、セキュリティ対策として以下の機能を搭載しています。
Add functions PHPによるセキュリティ対策機能について
大前提として、Add functions PHPで提供しているセキュリティ対策機能は、最低限と言っても過言ではありません。
WordPressは世界中で使用されているシェア率No.1のCMSである一方、セキュリティを突破する方法が世界中で生み出されているCMSでもあるため、なるべくセキュリティ対策は強固に行いたいものです。
ですが、Add functions PHPは「最低限これらのセキュリティ対策はやっておきたい」と思う機能のみを搭載しています。
Add functions PHPはfunctions.php等のファイルを直接編集することなくWordPressをカスタマイズできるプラグインであり、セキュリティ対策プラグインではありません。
そのため、Add functions PHPで提供するセキュリティ対策は「もしセキュリティ対策プラグインを入れないのであれば、最低限これらの機能だけでも有効にしておきたい」と考えられる機能のみ搭載しています。
より確実なセキュリティ対策を導入したい場合は、セキュリティ対策プラグインの追加導入をおすすめいたします。
セキュリティ対策プラグインとAdd functions PHPで重複する機能がある場合は、Add functions PHPにて重複する機能をオフにしてご利用ください。
なお、各機能を実際にどうやって実装しているかをここで記載してしまっては本末転倒であるため、興味がある方はプラグインエディターより、該当ファイルを探してご確認ください。
投稿者アーカイブを無効にする
「投稿者アーカイブ」とは、WordPressにて投稿された記事を投稿者(ユーザー)ごとにまとめるWordPressのデフォルト機能です。著者別アーカイブと言っても良いでしょう。
特に何も設定していない状態では、例えば以下のようなURLでユーザーID1番の投稿者アーカイブが出力されます。
https://example.com/?author=1
そして、このURLにアクセスすると、以下のように1番のユーザー名(例:admin-user)が付与されたURLにて投稿者アーカイブはリダイレクトされます。
http://example.com/author/admin-user/
投稿者アーカイブが有効化されている際の問題は、ログインに必要なアカウント名が公開されてしまっていることです。ユーザー名だけではログインできませんが、これは言い方を変えると、パスワードさえ突破してしまえば不正ログインが出来てしまう状態です。
特に、簡単なパスワードを設定しているアカウントであれば不正ログインまでは簡単でしょう。
投稿者アーカイブが出力されると不正ログインのヒントを教えてしまうようなものであるため、Add functions PHPでは投稿者アーカイブ無効化機能を搭載しています。
REST APIでユーザー名を確認できないようにする
また、REST API にはユーザー情報を取得する機能が搭載されており、以下のようなURLにアクセスすると、投稿者アーカイブ以上に手軽にすべてのユーザー情報を取得できてしまいます。
http://example.com/wp-json/wp/v2/users
そのため、Add functions PHPでは投稿者アーカイブの無効化だけではなく、REST APIでユーザー名を確認できないようにする機能の併用をおすすめしています。
ログインエラーメッセージを変更する
例えば、他のサイトとログイン情報を間違えた時に以下のようなエラーメッセージが出力されたことはないでしょうか。
WordPressでは、ログインする際に誤ったログイン情報でアクセスしようとすると、以下のようなエラーメッセージが出力されるようになっています。
- ユーザー名・メールアドレスを間違えた時: ユーザー名 **** は、このサイトに登録されていません。ユーザー名が不明な場合は、代わりにメールアドレスを入力してください。
- パスワードを間違えた時: ユーザー名 **** のパスワードが間違っています。
これは純粋にログイン情報を間違えた側からするとありがたいかもしれませんが、不正アクセスを目論む不審者からすればログインするためのヒントを与えているようなものです。
どちらの情報があっているかさえ分かってしまえば不正ログインしやすくなるため、Add functions PHPではユーザー名またはメールアドレス、パスワードのどれが誤っていても以下のように「ユーザー名 / メールアドレス、またはパスワードが違います。」というエラーが出力される機能を搭載しています。
ログイン試行回数を3回までに制限する
例えばの話ですが、ユーザー名が分かっていれば、後はパスワードさえ突破すればいいためがむしゃらにパスワードを突破するために何度もログインを試みることが出来てしまいます。
これではユーザー名を秘匿していてもいつかは突破されてしまう可能性が高いため、Add functions PHPでは「ログイン試行回数を 3 回に制限する」機能を搭載しています。
この機能が有効化されている場合、ログインに失敗すると以下のようなエラーメッセージが出力されます。3回を超えてログインに失敗した場合、一定の時間が経過するまでログインを試みることはできなくなります。
【PRO版】日本国外からのログイン・コメントをブロックする
もちろん日本国内から不正アクセスを試みる人も存在しますが、不正アクセスを試みるのはほとんどが海外ユーザーです。
そのため、Add functions PHPでは日本国外に日本国外からアクセスやコメントを試みた場合にこれらをブロックする機能を搭載しています。
この機能は、ログインまたはコメントをしようとしている端末のIPアドレスに基づいてログインやコメントをブロックします。
スパムコメント等をなるべく少なくしたいという方にもおすすめの機能です。
【PRO版】/files/{ファイル名}と出力されるメディアライブラリのURLを変更する
通常、ワードプレスで画像をアップロードしたり、PDFを追加したりする場合、追加されたファイルはそれぞれ以下のようなURL形式で閲覧できます。
https://example.com/files/2024...
WordPressで作成されたサイトであると簡単に分かれば狙われやすくなるため、例えば以下のようなディレクトリ構造に変更し、WordPressで制作されたことをより秘匿できるようにする機能です。
https://example.com/img
【PRO版】ログインページURLを変更する
WordPressのログインページは以下のようなURLが設定されています。
https://example.com/wp-login
これは、WordPressで制作されるサイトであれば、基本的にすべて共通してログインページにアクセスできます。
ページにアクセスできてしまえば、ユーザ名とパスワードさえ手に入れれば不正アクセス完了です。
そうならないよう、デフォルトのWordPressログインページを任意の形式に変更する機能です。この機能が有効になっている場合、ログインしてない状態での以下のようなアドレスへのアクセス制限が発生し、アクセスされた場合は404エラーが発生します。
https://example.com/wp-admin
https://example.com/wp-content
https://example.com/wp-admin/dashboard
https://example.com/wp-admin//register
https://example.com/wp-admin//enter
https://example.com/wp-login.php
【PRO版】サイト全体にBASIC認証を掛ける
サイト全体にBASIC認証でアクセス制限をかける機能です。
管理画面上で指定したログインIDとパスワードが保存されたら、その瞬間よりサイト全体へBASIC認証によるアクセス制限が発生します。