年末年始の長期休暇前にWordPressのセキュリティ対策を見直しませんか?20年の実績から導いた実践的な防御チェックリストで、新年も安心してサイト運営ができます。
こんな悩み、ありませんか?
年末が近づくたびに、こんな不安が頭をよぎりませんか?
- 「年末年始の休暇中にサイトが攻撃されたらどうしよう」
- 「久々にサイトを開いたら乗っ取られていた...なんて話を聞いて怖い」
- 「セキュリティ対策は一応やっているけど、本当に十分なのか不安」
- 「何から確認すればいいのか分からない」
横浜でWeb制作を20年以上手がけてきた私たちFivenine Designでは、年末年始にセキュリティ関連のお問い合わせが急増します。長期休暇中は管理者の目が届きにくく、攻撃者にとって絶好のタイミングだからです。
今回は、新年を安心して迎えるためのWordPressセキュリティ最終チェックをご紹介します。
あるクライアントの危機一髪体験
昨年の年末、ある製造業のクライアントから緊急の連絡がありました。年明けにサイトを確認すると、見知らぬファイルがアップロードされ、GoogleのSafe Browsing(セーフブラウジング)で警告が表示されていたのです。
課題: 長期休暇中の監視不備で不正アクセスを受けた 解決策: 包括的なセキュリティチェックリストを実施 結果: 迅速な復旧と再発防止で、現在まで一度も問題なし
この経験から、私たちは年末の「セキュリティ最終点検」の重要性を痛感しました。
1. 管理者権限の徹底見直し
不要なユーザーアカウントの削除
最初にチェックすべきは、管理画面のユーザー一覧です。退職した従業員や、一時的に作成したテストアカウントが残っていませんか?
// wp-config.phpで管理者以外のユーザー登録を無効化
define('WP_ALLOW_REGISTRATION', false);
具体的な確認手順:
- WordPress管理画面 → ユーザー → すべてのユーザー
- 最終ログイン日が6ヶ月以上前のアカウントを確認
- 不要なアカウントは即座に削除
- 必要なアカウントでも権限レベルを見直し
強力なパスワードポリシーの実装
あるECサイトのクライアントでは、スタッフが「password123」のような簡単なパスワードを使用していました。私たちが推奨したのは以下の設定です:
// functions.phpに追加:パスワード強度チェック
function enforce_strong_passwords($errors, $sanitized_user_login, $user_email) {
if (isset($_POST['pass1']) && !empty($_POST['pass1'])) {
$password = $_POST['pass1'];
if (strlen($password) < 12 ||
!preg_match('/[A-Z]/', $password) ||
!preg_match('/[a-z]/', $password) ||
!preg_match('/[0-9]/', $password) ||
!preg_match('/[^a-zA-Z0-9]/', $password)) {
$errors->add('password_weak', '12文字以上で大文字・小文字・数字・記号を含むパスワードを設定してください');
}
}
return $errors;
}
add_action('user_profile_update_errors', 'enforce_strong_passwords', 0, 3);
2. プラグインとテーマの総点検
更新状況の確認と適用
よくある失敗: 「更新で何かが壊れるのが怖い」という理由で更新を先延ばしにして、脆弱性を放置してしまう
私たちの推奨手順:
- ステージング環境で先に更新テスト
- 本番環境のフルバックアップ取得
- メンテナンスモード設定後に更新実行
// wp-config.phpに追加:自動更新の制御
define('WP_AUTO_UPDATE_CORE', true); // コア自動更新有効
define('AUTOMATIC_UPDATER_DISABLED', false); // セキュリティ更新は自動適用
不要なプラグインの削除
使っていないプラグインも攻撃の入り口になります。ある医療クリニックのサイトでは、3年前にテストで入れた未使用プラグインから侵入されました。
チェックポイント:
- 3ヶ月以上無効化状態のプラグイン → 削除
- 開発が停止しているプラグイン → 代替品に移行
- 同じ機能を持つプラグインが複数 → 統合または削除
3. ログイン周りの要塞化
二段階認証の導入
Google Authenticatorを使った二段階認証は必須です。実装は思っているより簡単:
// おすすめプラグイン:Two Factor Authentication
// または、functions.phpでカスタム実装
function custom_login_security() {
// ログイン試行回数制限
$attempts = get_transient('login_attempts_' . $_SERVER['REMOTE_ADDR']);
if ($attempts >= 5) {
wp_die('ログイン試行回数が上限に達しました。30分後に再試行してください。');
}
}
add_action('wp_login_failed', 'custom_login_security');
ログインURLの変更
/wp-admin/や/wp-login.phpは攻撃者の標的です。URLを変更することで、大幅に攻撃を減らせます:
// .htaccessでのアクセス制限例
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-login\.php$
RewriteCond %{REMOTE_ADDR} !^192\.168\. # 社内IPからのみ許可
RewriteRule ^.*$ - [F,L]
4. サーバーレベルでの防御強化
ファイルパーミッションの確認
重要なディレクトリのパーミッション設定:
- wp-config.php → 600 または 644
- wp-content/ → 755
- wp-content/uploads/ → 755
- .htaccess → 644
# 一括でパーミッション設定
find /path/to/wordpress/ -type d -exec chmod 755 {} \;
find /path/to/wordpress/ -type f -exec chmod 644 {} \;
chmod 600 wp-config.php
wp-config.phpのセキュリティ設定
// セキュリティキーの更新(年に1回は変更推奨)
define('AUTH_KEY', '新しいランダム文字列...');
define('SECURE_AUTH_KEY', '新しいランダム文字列...');
// ... 他のキーも同様に更新
// ファイル編集の無効化
define('DISALLOW_FILE_EDIT', true);
define('DISALLOW_FILE_MODS', true);
// エラー表示の無効化
ini_set('display_errors', 0);
define('WP_DEBUG_DISPLAY', false);
5. 監視とバックアップ体制の確認
自動バックアップの動作確認
よくやりがちなミス: バックアップ設定はしているけど、復元テストをしていない
年末の今こそ、バックアップからの復元テストを実施しましょう:
// BackWPupプラグインでの設定例
// - データベース: 毎日
// - ファイル: 週1回
// - 保存先: クラウドストレージ(Dropbox、AWS S3など)
// - 世代管理: 30日分保持
セキュリティログの監視設定
WP Activity LogやWordfenceなどで、以下の活動を監視:
- ログイン試行(成功・失敗問わず)
- プラグインの有効化・無効化
- テーマファイルの変更
- 新規ユーザー作成
6. 最終チェックリスト
年末の点検で必ず確認すべき項目:
□ 管理系チェック
- 不要なユーザーアカウント削除
- 全ユーザーのパスワード強度確認
- 管理者権限の必要最小限化
□ システム系チェック
- WordPress本体の最新版への更新
- 全プラグインの更新と不要プラグイン削除
- テーマの更新と未使用テーマ削除
- PHP・MySQLバージョンの確認
□ セキュリティ系チェック
- 二段階認証の動作確認
- ログイン試行制限の設定確認
- セキュリティキーの更新
- ファイルパーミッションの点検
□ 監視・復旧系チェック
- バックアップの動作確認と復元テスト
- セキュリティプラグインの動作確認
- 監視メール通知の確認
- 緊急時連絡体制の確認
これで新年も安心!継続的な守りを
セキュリティ対策を実施したクライアントからは、こんな声をいただいています:
「年末年始も安心して過ごせました。以前は休暇中もサイトのことが気になって仕方なかったのですが、今は本当に安心です」(建設業・M社長)
「セキュリティ強化後、不正アクセスの試行は検知されますが、すべてブロックされています。お客様からの信頼も高まりました」(小売業・Sマネージャー)
ただし、セキュリティ対策は一度設定すれば終わりではありません。定期的な見直しと更新が必要です。
まず何から始めるべきか
明日から実行できる優先度順のアクション:
- 今すぐ(30分以内):WordPress・プラグインの更新確認と適用
- 今週中:不要なユーザーアカウントとプラグインの削除
- 年内に:二段階認証の導入とバックアップの復元テスト
もし「自分で全部やるのは不安」「専門家に任せたい」と感じたら、お気軽にご相談ください。Fivenine Designでは、20年の実績を活かした包括的なセキュリティ診断と対策を提供しています。
新年を安心してスタートするために、今年最後のひと手間を惜しまず、WordPressサイトをしっかり守りましょう。