2026年10月22日
2026年10月22日
WordPressの安全なコーディング規約を徹底する方法
はじめに
この記事では、WordPressでの開発においてセキュリティを強化するために必要な安全なコーディング規約について詳しく解説します。WordPressの安全性は、プラグインやテーマの開発だけでなく、サイト全体の管理にも大きく影響します。
症状・背景
このテーマが必要になる主な場面:
- <場面1>: 不正アクセスが疑われる場合
- <場面2>: パッチを適用する必要がある場合
- <場面3>: 新しいプラグインやテーマの導入を検討している場合
- <場面4>: サイトの脆弱性スキャン結果で問題点が指摘された場合
手順・設定方法
ステップ1: WordPressサイトへのアクセス権限の確認と変更
# WordPress管理ディレクトリにSSHで接続します。
ssh user@yourdomain.com
# WordPress管理ディレクトリへ移動します。
cd /var/www/html/wp-admin/
# ファイルやディレクトリの権限を確認します。
ls -l
# 必要なファイルやディレクトリのアクセス権限を変更します。通常、wp-contentは750, wp-config.phpは644と設定することをお勧めします。
chown -R www-data:www-data /var/www/html/wp-content/
chmod 750 /var/www/html/wp-content/
chmod 644 /var/www/html/wp-config.php
ステップ2: .htaccessファイルのセキュリティ設定
# WordPressディレクトリに移動します。
cd /var/www/html/
# 現在の.htaccessファイルをバックアップコピーを作成します。
cp .htaccess .htaccess-backup
# 新しいセキュリティ設定を追加するための新しい.htaccessファイルを作成します。
nano .htaccess
# ファイルに次の内容を追加します:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# さらに以下のような追加設定を含めることもできます:
<Files wp-config.php>
Order Deny,Allow
Deny From All
</Files>
ステップ3: 安全なデータベース接続とクエリの使用
# MySQLのコマンドプロンプトに接続します。
mysql -u username -p
# WordPressのデータベースを選択します。
use wordpressdb;
# データベーステーブルに対してSQLインジェクションを防ぐために、プリペアドステートメントを使用します。
PREPARE stmt FROM 'SELECT * FROM wp_users WHERE user_login = ?';
SET @name = 'yourusername';
EXECUTE stmt USING @name;
DEALLOCATE PREPARE stmt;
ステップ4: 非公開ディレクトリの設定と定期的なスキャン実行
# WordPress管理ディレクトリにSSHで接続します。
ssh user@yourdomain.com
# wp-content/uploadsを非公開に変更するため、.htaccessファイルを作成または編集します。
nano /var/www/html/wp-content/uploads/.htaccess
# ファイルに次の内容を追加します:
Order Deny,Allow
Deny From All
# 管理者権限でスキャンツール(例えば,WPScan)の実行
sudo wpscan --url http://yourdomain.com --enumerate u
注意事項
- <実践的な注意点1>: WordPressの最新バージョンを使用し、常にセキュリティパッチを適用すること。
- <実践的な注意点2>: 不要なプラグインやテーマは削除または無効化して不要な機能からサイトを保護すること。
- <セキュリティ上の注意>: データベース接続情報やシークレットキーは常に安全に管理し、適切なバックアップを取り続けること。
- <パフォーマンス/運用上の注意>: 重要な設定変更の前に必ずテスト環境で動作を確認すること。
まとめ
1. <キー1>: WordPressサイトへのアクセス権限を適切に設定することで、不正アクセスのリスクを軽減することができます。
2. <キー2>: .htaccessファイルを使用して物理的なセキュリティ強化が可能となります。
3. <キー3>: SQLインジェクションからデータベースを守るためにはプリペアドステートメントを利用することが重要です。
4. <キー4>: ファイルやディレクトリの非公開化により、潜在的な攻撃に対する防御が強化されます。
5. <キー5>: 定期的にサイトをスキャンすることで、セキュリティ上の問題点を見つけることができます。
関連記事: