「セキュリティ、なんとなくで済ませていませんか?」
Webサイトの管理画面は、言わば「サイトの心臓部」。
特にCMSを使っていると、ログインURLやユーザー情報が狙われやすくなります。
今回は、ProcessWireでサイト構築する際に最低限やっておきたいセキュリティ対策を、わかりやすくご紹介します。
クライアントさまにとっても、自社の情報を守る安心材料になるはずです。
「セキュリティ、なんとなくで済ませていませんか?」
Webサイトの管理画面は、言わば「サイトの心臓部」。
特にCMSを使っていると、ログインURLやユーザー情報が狙われやすくなります。
今回は、ProcessWireでサイト構築する際に最低限やっておきたいセキュリティ対策を、わかりやすくご紹介します。
クライアントさまにとっても、自社の情報を守る安心材料になるはずです。
クライアントサポート
「/processwire/」のようなデフォルトURLを、独自のURLに変更して、ログイン画面への不要なアクセスを防ぎます。
CMSのログイン前に、さらにパスワードをかける二重ロック方式。万が一ログインURLがバレても安心です。
特定のIPアドレスだけが管理画面にアクセスできるように設定。関係者以外は完全シャットアウト。
ログイン失敗の回数制限や、ロック時間を設定することで、総当たり攻撃を防ぎます。
通信の暗号化は基本中の基本。すべての管理画面アクセスは「https://」で統一を。
Google Authenticator などに対応した2段階認証を導入することで、さらにセキュリティを強化できます。
デフォルトの /admin
は外部から狙われやすいため、別の名前に変更しましょう。
方法:
/site/config.php
に以下を追記します(例:/cms-panel
に変更したい場合):
$config->adminRoot = 'cms-panel';
この設定により、管理画面のURLが https://example.com/cms-panel/
に変更されます。
管理画面にアクセスできるIPアドレスを制限することで、不正アクセスのリスクを大きく減らせます。
例(1.2.3.4 が自分のIPアドレスの場合):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/cms-panel/
RewriteCond %{REMOTE_ADDR} !^1\.2\.3\.4$
RewriteRule ^(.*)$ - [F,L]
</IfModule>
ProcessWireには標準でログイン試行制限(ロックアウト)機能が備わっています。
設定方法:
/site/config.php
に以下を追加・確認します:
$config->loginMaxAttempts = 5; // 最大試行回数
$config->loginThrottleDelay = 15; // 試行失敗時の遅延(秒)
管理画面の通信はすべてSSL(https)で暗号化するのが必須です。
.htaccess
に追加:
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
使用していないテンプレートやモジュール、フィールドは削除しましょう。攻撃の足がかりになる可能性があります。
サーバー側のcronや、外部サービスを使って定期的なバックアップを自動化しておくと安心です。
ProcessWire本体を最新版に保つことで、既知の脆弱性から守ることができます。
以上をしっかり対策することで、ProcessWireのセキュリティレベルを格段に引き上げることができます。
セキュリティは「やりすぎ」がちょうどいい。
できるところから一つずつ対策を進めていきましょう。