WordPressセキュリティ
基本対策の詳細手順
「何から始めればいいかわからない」方へ。この6つを実施するだけで、WordPressへの自動攻撃の70〜80%を防ぐことができます。作業時間の目安は合計2〜3時間。順番通りに進めれば初心者でも完了できます。
📋 目次
🗺️ 1. 6つの基本対策の全体像
WordPressのセキュリティ対策は多岐にわたりますが、まず以下の6つを実施することが最重要です。これらは費用がほとんどかからず、初心者でも実施できます。
対策1: SSL化(HTTPS対応)
通信を暗号化。Googleのランキング要因にもなっており、サイトの信頼性を高める最優先事項。
対策2: ユーザー名の変更
「admin」というデフォルトユーザー名を変更するだけで、ブルートフォース攻撃の大半を無効化できる。
対策3: 強固なパスワード
12文字以上のランダムなパスワードに変更。パスワードマネージャーで管理すれば覚える必要もない。
対策4: 二要素認証(2FA)
パスワードが漏洩しても不正ログインを防ぐ最強の防御。スマートフォンのアプリで実装できる。
対策5: wp-config.php保護
データベース情報や認証キーが含まれる最重要ファイル。.htaccessで外部アクセスを完全遮断する。
対策6: ファイルパーミッション
ファイルの書き込み権限を最小限に設定。マルウェアがサーバー上にファイルを設置することを防ぐ。
🔒 2. 【対策1】SSL化(HTTPS化)
SSLとは、ブラウザとサーバー間の通信を暗号化する技術です。URLがhttps://から始まるサイトはSSL対応済みです。SSL化されていないサイトはブラウザに「保護されていない接続」と表示され、訪問者に不安を与えるうえ、Googleの検索評価でも不利になります。
① サーバーパネルからの無料SSL発行手順
主要レンタルサーバーはすべてLet's Encrypt(無料SSL)に対応しています。サーバーパネルから数クリックで発行できます。
各サーバーのSSL設定場所
エックスサーバー:サーバーパネル → SSL設定 → ドメインを選択 → 無料独自SSL追加
ConoHa WING:コントロールパネル → サイト管理 → サイトセキュリティ → SSL → 有効化
ロリポップ:ユーザー専用ページ → セキュリティ → 独自SSL証明書導入
SSL証明書の発行・反映を待つ
申請後、証明書の発行・反映には通常数分〜1時間かかります。反映後、ブラウザでhttps://あなたのドメインにアクセスして鍵マーク(🔒)が表示されれば成功です。
管理画面でURLを変更
WordPress管理画面 → 設定 → 一般 → 「WordPressアドレス(URL)」と「サイトアドレス(URL)」を両方ともhttps://に変更して保存。
httpからhttpsへのリダイレクトを設定
.htaccess(WordPressルートディレクトリにある)を開き、# BEGIN WordPressの前に以下を追記:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
② 混合コンテンツエラーの解決方法
https化後に一部の画像やスクリプトがhttpのまま読み込まれていると「混合コンテンツ(Mixed Content)エラー」が発生し、鍵マークに警告が表示されます。
「Really Simple SSL」プラグインで一括対応
プラグイン「Really Simple SSL」をインストール・有効化するだけで、混合コンテンツの多くを自動修正してくれます。設定も不要で最も簡単な方法です。
Better Search Replaceでデータベースを置換
プラグイン「Better Search Replace」でhttp://あなたのドメインをhttps://あなたのドメインに一括置換することで、データベース内に残ったhttpを修正できます。
👤 3. 【対策2】管理者ユーザー名の変更
WordPressのデフォルトインストールでは管理者ユーザー名が「admin」になることが多く、ブルートフォース攻撃の自動ツールは真っ先に「admin」でのログインを試みます。ユーザー名を変更するだけで攻撃の大半を無効化できます。
ユーザー追加画面へ移動
WordPress管理画面 → ユーザー → 新規追加
新しいユーザー情報を入力
ユーザー名:「admin」「administrator」「サイト名」以外の推測されにくい名前を設定
メールアドレス:現在のものとは別のアドレスを使用
権限グループ:「管理者」を選択
「ユーザーを追加」をクリック
新アカウントでログインし直す
一度ログアウトし、新しいユーザー名・パスワードでログインします。ログインできることを確認してから次のステップへ進んでください。
旧アカウント(admin)を削除
ユーザー一覧で旧adminアカウントを削除。「すべてのコンテンツを帰属させる」で新アカウントを選択してから削除してください(投稿の帰属先が変わります)。
/?author=1)にアクセスするとユーザー名がURLに表示される仕様があります。Wordfenceやセキュリティプラグインの「ユーザー名の漏洩防止」機能を有効にするか、.htaccessで/?author=へのアクセスをブロックすることを推奨します。
🔑 4. 【対策3】強固なパスワードの設定
弱いパスワードは最も多い侵入経路の一つです。2024年の調査では、侵害されたWordPressサイトの約30%が弱いパスワードが原因とされています。
安全なパスワードの条件
| 条件 | 推奨 | NG例 |
|---|---|---|
| 文字数 | 16文字以上 | 8文字以下 |
| 文字種 | 英大文字・小文字・数字・記号を混在 | 英字のみ・数字のみ |
| 内容 | ランダムな文字列 | サイト名・生年月日・辞書単語 |
| 使い回し | このサイト専用 | 他サービスと同じパスワード |
| 管理方法 | パスワードマネージャーで管理 | メモ帳・ブラウザの記憶のみ |
強固なパスワードを生成する
パスワードマネージャー(1Password・Bitwarden・KeePass等)のパスワード生成機能を使うのが最も安全です。Bitwardenは無料で使えます。WordPressの管理画面にも「強力なパスワードを生成」機能があります。
管理画面でパスワードを変更
WordPress管理画面 → ユーザー → プロフィール → 「アカウント管理」セクション → 「新しいパスワードを設定」をクリック → 生成されたパスワードをコピーして入力 → 「プロフィールを更新」
DB_PASSWORDの値も同期して更新してください。FTPで直接編集します。
📱 5. 【対策4】二要素認証(2FA)の導入
二要素認証(Two-Factor Authentication / 2FA)とは、ログイン時にパスワードに加えて、スマートフォンアプリが生成するワンタイムコードも必要とする認証方式です。パスワードが漏洩しても、物理的なデバイス(スマートフォン)がなければログインできないため、不正アクセスを強力に防ぎます。
プラグインをインストール・有効化
WordPress管理画面 → プラグイン → 新規追加で「Two Factor Authentication」(開発者:David Anderson)を検索してインストール・有効化。無料で利用可能です。
スマートフォンに認証アプリをインストール
Google Authenticator・Authy・Microsoft Authenticatorのいずれかをスマートフォンにインストール。Authyはバックアップ機能があり機種変更時に便利です。
QRコードをスキャンして設定完了
WordPress管理画面 → Users → Your Profile → Two Factor Authentication → 「TOTP」を有効化 → 表示されるQRコードを認証アプリでスキャン → 認証アプリに表示される6桁のコードを入力して認証 → 完了
バックアップコードを必ず保存する
スマートフォンを紛失した際に使えるバックアップコードが表示されます。必ず印刷またはパスワードマネージャーに保存してください。これを紛失するとロックアウトの可能性があります。
⚙️ 6. 【対策5】wp-config.phpの保護
wp-config.phpはWordPressの最重要設定ファイルです。データベース名・ユーザー名・パスワード・認証キー・テーブルプレフィックスなどが含まれており、このファイルの内容が漏洩するとサイトを完全に乗っ取られる可能性があります。
方法1: .htaccessで外部アクセスをブロック(推奨)
サーバーのルートディレクトリにある.htaccessファイルに以下を追記します。# BEGIN WordPressの前に追加してください。
# wp-config.phpへの外部アクセスを禁止
<files wp-config.php>
order allow,deny
deny from all
</files>
方法2: wp-config.phpを1階層上に移動
WordPressはwordpressディレクトリの1階層上(親ディレクトリ)にwp-config.phpを配置しても自動的に認識します。公開ディレクトリ(public_html)より上に移動することで、Webからはアクセスできない場所に配置できます。
① セキュリティキーの再生成:インストール時から変更されていない場合、WordPress Secret Key Generatorで新しいキーを生成して置き換えてください(既存ログインセッションは全て無効化されます)。
② デバッグ表示の無効化:本番環境では
define('WP_DEBUG', false);になっていることを確認。trueになっているとエラーメッセージがサイト上に表示されてしまいます。③ ファイル編集を無効化:
define('DISALLOW_FILE_EDIT', true);を追加すると、管理画面からのテーマ・プラグインファイル編集が無効になり、管理画面乗っ取り時の被害を軽減できます。
テーブルプレフィックスの変更
WordPressのデータベーステーブルはデフォルトでwp_というプレフィックスが付きます。これを変更することでSQLインジェクション攻撃への耐性が増します。ただし既存のWordPressでは変更作業が複雑なため、新規インストール時に設定するのがベストプラクティスです。
// wp-config.php内のテーブルプレフィックス(新規インストール時に変更)
$table_prefix = 'wp_'; // → 'mySite2026_' のようにランダムな文字列に変更
📂 7. 【対策6】ファイルパーミッションの最適化
ファイルパーミッション(権限)とは、サーバー上のファイルやディレクトリに対して「誰が・何を(読む・書く・実行)できるか」を3桁の数字で表したものです。WordPressの多くのハッキングは、不適切なパーミッション(特に777)を悪用して悪意のあるファイルを設置することで行われます。
WordPress推奨のパーミッション設定
| 対象 | 推奨値 | 意味 | NGの値 |
|---|---|---|---|
| ディレクトリ | 755 | 所有者は読書実行可、他は読実行のみ | 777(全員が書き込み可) |
| ファイル | 644 | 所有者は読書可、他は読のみ | 666・777 |
| wp-config.php | 600または640 | 所有者のみ読書可 | 644以上 |
| .htaccess | 644 | 所有者は読書可、他は読のみ | 777 |
| wp-content/uploads/ | 755 | Webサーバーが書き込み可能に | 777 |
FTPソフト(FileZilla等)で確認する場合
FTPでサーバーに接続 → ファイル・フォルダを右クリック → 「ファイルパーミッション」または「属性」を選択 → 現在の値を確認・変更。ディレクトリの場合は「サブディレクトリに再帰的に適用」にチェックを入れると一括変更できます。
SSH(コマンド)で一括変更する場合
SSHが使えるサーバーでは以下のコマンドで一括変更できます:
# WordPressルートに移動(public_htmlなどに置き換え)
cd /home/username/public_html
# ディレクトリを755に設定
find . -type d -exec chmod 755 {} \;
# ファイルを644に設定
find . -type f -exec chmod 644 {} \;
# wp-config.phpだけ600に設定
chmod 600 wp-config.php
🔄 8. 追加推奨:WordPress自動更新の設定
基本対策6つに加えて、WordPressコア・テーマ・プラグインを常に最新版に保つことが重要です。既知の脆弱性が修正された新バージョンが公開された後も旧バージョンを使い続けることで、攻撃の標的になります。
マイナーアップデートの自動更新(デフォルトで有効)
WordPress 5.6以降、マイナーバージョン(4.9.x等のセキュリティ修正)は自動更新されます。無効にしている場合は以下でオフを解除:
define('WP_AUTO_UPDATE_CORE', true); // マイナー更新を自動化
プラグイン・テーマの自動更新を有効化
管理画面 → プラグイン 一覧で各プラグインの「自動更新を有効にする」をクリック。または wp-config.php に追記:
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );