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. バックアップと復元: 緊急時に迅速に対応できるよう、定期的にバックアップを作成し、保管すること。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ