
はじめに
「画像をアップロードしただけなのに、サイトが改ざんされた」──そんな話を耳にしたことはないでしょうか?
実はこの手のトラブル、WordPressのメディアアップロード機能が攻撃者に悪用された結果であることが多いんです。
僕も以前、クライアントのサイトで「.jpgに見せかけた.phpスクリプト」がアップロードされ、サーバー内部が不正操作されたケースを経験しました。
表面上は普通の画像に見えるのに、裏ではサーバー上でコードが実行されていたんです。
この記事では、WordPressのメディアファイルを狙った攻撃の実態と、それを防ぐためのファイルアップロード制限の方法を、現場目線でわかりやすく説明します。
なぜメディアファイルが狙われるのか
WordPressの「メディアライブラリ」は便利で、画像・PDF・動画などを簡単にアップロードできます。
しかし、利便性の裏には「攻撃の入り口」というリスクも潜んでいます。
攻撃者は以下のような手口で侵入を狙います:
.jpgや.pngに偽装した.phpファイルをアップロード- URLへ直接アクセスしてスクリプトを実行
- 結果としてサーバー内部にバックドア(遠隔操作用コード)を設置
とくに、古いWordPressバージョンやファイル検証が甘いプラグインではこの攻撃が成立しやすいんです。

攻撃の具体的な手口
拡張子偽装
攻撃者は「image.php.jpg」や「file.png.php」など、複数拡張子を組み合わせてファイルを偽装します。
これにより見た目は画像ですが、実際はPHPファイルとして実行可能な状態になります。
画像内へのスクリプト埋め込み
画像ファイルの末尾に悪意あるコードを仕込むことで、アップロード後に実行できるようにする手口です。
表示上は普通の画像なので、検知が遅れやすいのが厄介です。
Webシェル設置
もっとも危険なのがこのパターン。
アップロードされた不正スクリプトが、サーバー上で「Webシェル」と呼ばれる遠隔操作プログラムとして動作します。
こうなると、サイト全体が攻撃者の手の中に落ちたも同然です。

ファイルアップロード制限の設定方法
WordPress側での対策(functions.php)
アップロードできる拡張子を限定することで、不正ファイルを防ぐ方法です。
<?php
// 許可するファイルタイプを限定
function custom_upload_mimes($mimes) {
return [
'jpg|jpeg' => 'image/jpeg',
'png' => 'image/png',
'gif' => 'image/gif',
'pdf' => 'application/pdf',
];
}
add_filter('upload_mimes', 'custom_upload_mimes');
?>このコードを functions.php に追加するだけで、余計なファイル形式を排除できます。

サーバー側での対策(.htaccess)
アップロードフォルダ内でPHPファイルを実行できないように制御します。
これが最も効果的な防御策の一つです。
<FilesMatch "\.php$">
Deny from all
</FilesMatch>これを /wp-content/uploads/ に配置すれば、攻撃者が .php ファイルをアップロードしても実行されません。

外部プラグインによる防御強化
WordPressのセキュリティ系プラグインを併用することで、より堅牢にできます。
- Wordfence Security:改ざん検知・ファイアウォール機能付き
- iThemes Security:アップロード監視・権限制御が簡単
- All In One WP Security:フォルダ保護設定が自動化可能
$ wp plugin install wordfence --activate導入しておくと、万が一の不正アップロードもすぐ検知できます。

実践的なアドバイス
- 投稿者や寄稿者といった下位権限ユーザーにはファイルアップロード権限を与えない
/wp-content/uploads/フォルダ内を定期的に確認する- FTP経由での直接アップロードを避け、管理画面経由で統一
- WordPress本体・プラグイン・テーマを常に最新版に保つ
僕の経験上、「権限見直し+.htaccess制限+セキュリティプラグイン」の3つを組み合わせると、ほとんどの被害は防げます。

まとめ
WordPressのメディアアップロード機能は、便利な反面、攻撃者にとっても魅力的な入口です。
アップロード制限・サーバー設定・権限管理をきちんと行うことで、不正ファイルの侵入を防ぐことができます。
「アップロードできる=安全」ではありません。
今日のうちに、あなたのサイトの設定をもう一度見直してみましょう。
WordPressのセキュリティ、不安に思っていませんか?

「自分のサイトは大丈夫だろうか…」
「何から手をつければいいか分からない…」
もしあなたが少しでもそう感じているなら、専門家による無料セキュリティ診断を受けてみることをおすすめします。