2026年6月25日
2026年6月25日
WordPressのFile Upload脆弱性を防ぐ方法
はじめに
WordPressは、世界中の多くのサイトで利用されている人気のあるCMSです。しかし、その便利さと同時に、ファイルアップロード機能を悪用した攻撃も増加しています。この記事では、WordPressのファイルアップロードシステムを通じた潜在的な脆弱性と、それらを防ぐための具体的な対策について詳しく説明します。
症状・背景
- ファイルアップロード機能が悪用された
- 不正なファイルがアップロードされ、その結果サイトが乗っ取られた
- アップデートやセキュリティプラグインの導入により、問題は解決した
- 管理者がファイルシステムを確認し、不審なファイルがないか調査した
手順・設定方法
ステップ1: WordPress管理画面からアップロード可能なファイルタイプを制限する
# プラグイン「iThemes Security」を使用して、許可された拡張子のみを設定します。
/wp-admin/admin.php?page=itsec-settings#fileupload
ステップ2: .htaccessファイルにアップロード可能ファイルの制限を追加する
# 許可された拡張子以外のファイルはアップロードできないようにします。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^POST$
RewriteCond %{HTTP:Content-Type} ^multipart/form-data$
RewriteCond %{CONTENT_LENGTH} >0
RewriteCond %{DOCUMENT_ROOT}/wp-content/uploads%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/wp-content/uploads%{REQUEST_URI} -d
RewriteRule .* - [F]
</IfModule>
ステップ3: ファイルサイズとアップロード数の制限を設定する
# php.iniファイルで最大ファイルサイズと最大アップロードサイズを制限します。
upload_max_filesize = 2M
post_max_size = 8M
max_input_time = 60
ステップ4: ファイルの保存ディレクトリを監視する
# セキュリティプラグイン「Wordfence」を使用して、ファイルシステムの変更をリアルタイムで監視します。
/wp-admin/plugins.php?page=wordfence&wfwizardSetup=1&tab=sweepSettings
注意事項
- ファイルアップロード機能は常に最新の状態に保つこと
- 未使用のプラグインやテーマを削除すること
- FTPアクセス権限を持つユーザー数を最小限に抑えること
- 定期的にサイトとデータベースのバックアップを行うこと
まとめ
1. ファイルタイプの制限: 許可された拡張子のみを設定することで、不適切なファイルがサイトに影響を与えないようにします。
2. .htaccessの編集: サーバー側で追加のセキュリティ制御を行うことで、アップロード可能なファイルタイプを厳しく管理できます。
3. ファイルサイズと数の制限: これらを適切に設定することで、不正なアップロードからサイトを保護します。
4. 監視: 定期的なファイルシステムチェックやリアルタイム監視ツールを使用して、潜在的な脅威を早期発見します。
5. バックアップと復元: 緊急時に迅速に対応できるよう、定期的にバックアップを作成し、保管すること。
関連記事: