WordPressのサーバーで、見覚えのないPHPファイルを見つけて困っていませんか?
ファイル名が不自然だったり、画像フォルダにPHPが置かれていたりすると、「すぐ消すべきか」「触らず放置すべきか」で迷います。
結論から言うと、不審なPHPファイルは放置も即削除も避けてください。
最初に証拠を残し、置かれた場所、作成時刻、正規ファイルとの差分、コードの役割、アクセス記録を組み合わせて判断するのが安全です。
「怪しい」という印象だけで消すと正規機能が止まり、反対に残したままだと攻撃者の入口になることがあります。
大切なのは、削除の速さではなく、判断を間違えない順番です。
WordPressの復旧を多数手がけてきたよこやま良平です。わたしの現場経験をもとに、不審なPHPファイルを見つけた直後の確認から、隔離・復元・相談の判断まで丁寧に解説します。
- 不審なPHPファイルを放置・即削除してはいけない理由
- ファイルの場所と由来から危険度を絞る方法
- 正規版との差分・コード・ログを使う確認手順
- 隔離・復元・削除・専門相談を分ける判断基準
- 1ファイルを処理した後に必要な再感染防止策
この記事では、感染ファイルを広く探す方法ではなく、すでに見つけた1つのPHPファイルをどう評価するかに絞ります。
慌てて実行・編集・削除せず、まず安全なトリアージから始めましょう。
WordPressの不審なPHPファイルは放置も即削除も避ける
WordPressの不審なPHPファイルを見つけたら、現状を保存してから危険度を評価するのが最初の結論です。
「動いていないように見えるから放置」「名前が変だから削除」という二択では、安全な復旧につながりません。
不審というだけではマルウェアと断定できない
PHPファイルはWordPress本体だけでなく、テーマ、プラグイン、キャッシュ、バックアップ、サーバー管理機能も作成します。
英数字だけの名前や短いファイル名でも、正規プラグインが一時処理に使っている場合があります。
一方、もっともらしい名前だから安全とも限りません。
攻撃者は、正規ファイルに似せた名前を使ったり、既存ファイルの末尾へ短い不正コードだけを追加したりします。
つまり、ファイル名やアイコンは入口の情報にすぎません。
場所、由来、内容、時刻、アクセス状況を重ねて初めて、削除に進めるだけの根拠ができます。
放置すると再侵入や情報流出の入口になり得る
悪意あるPHPファイルには、外部から命令を受けるバックドア、別のファイルを生成する仕組み、認証情報を読む処理などが含まれることがあります。
ブラウザで直接開いて何も表示されなくても、安全の証明にはなりません。
特定のパラメーター、Cookie、IPアドレスがそろった時だけ動くコードもあります。
通常の閲覧では沈黙し、検索エンジンやスマートフォンだけに別ページを返すケースもあるため、見た目だけの確認は不十分です。
即削除すると原因と影響範囲が分からなくなる
不審ファイルをすぐ消すと、作成時刻、所有者、ハッシュ値、コード、周辺ファイルとの関係を後から確認できません。
また、正規ファイルだった場合は管理画面や決済、フォームなどが突然停止する恐れがあります。
- 不審ファイルをブラウザから直接実行する
- バックアップを取らずに削除・上書きする
- 権限を広げて動作を試す
- コード全文を公開の掲示板やSNSへ貼る
- 1ファイルを消しただけで復旧完了と考える
まず「触らず記録する時間」を作ることが、結果的に復旧を早くします。
サイト全体の症状も確認したい場合は、公開済みの改ざんチェック項目を併せて確認してください。
WordPressの不審なPHPファイルは場所と役割から確認する
WordPressの不審なPHPファイルは、コードを読む前に「どこにあり、誰の機能に属するか」を確認すると判断が速くなります。
同じ内容でも、置かれた場所によって正常である可能性と危険度が大きく変わるからです。

WordPress本体・テーマ・プラグインは配布元と比較する
WordPress本体の標準ファイルや、公式配布されているテーマ・プラグインのファイルなら、同じバージョンの正規パッケージと比較できます。
名前が同じでも内容が違う、正規版に存在しないPHPが増えている場合は、疑いが強まります。
比較する時は、現在のバージョンを先に記録してください。
最新版と古い稼働版を比較すると、正規の変更まで改ざんに見えるため、「同じ版同士」で見ることが重要です。
wp core verify-checksums
wp plugin verify-checksums --all
shasum -a 256 path/to/suspicious-file.phpこれらは改変を行わず確認する例ですが、SSHやWP-CLIを使えない環境で無理に実行する必要はありません。
管理会社へ依頼する場合も、対象バージョンとファイルパスを伝えるだけで比較が進めやすくなります。
uploads・cache・tmp配下のPHPは理由を確認する
通常、`uploads` は画像やPDFなどを保存する場所です。
その中のPHPは強い確認対象ですが、存在だけで直ちにマルウェアとは断定せず、利用中のプラグインが生成した根拠があるかを確認します。
`cache` や `tmp` には、最適化・バックアップ・フォーム処理が一時ファイルを作る場合があります。
公式マニュアル、プラグインのソース、同じ環境の正常サイトと照合できなければ、実行させず隔離候補として扱います。
公開領域の外やサーバー固有領域も決めつけない
ホームディレクトリやサーバー会社の管理領域には、バックアップ、アクセス解析、セキュリティ機能のPHPが置かれることがあります。
WordPressのフォルダ外だから不正、という決めつけも危険です。
- ドキュメントルートからの完全なパス
- ファイル名、サイズ、更新日時、所有者、権限
- 同じフォルダで同時期に増えたファイル
- 関連しそうなテーマ・プラグインとバージョン
- 発見のきっかけとなった警告や症状
感染候補を探す場所や順番そのものを知りたい場合は、別記事の基本手順が役立ちます。
本記事では、そこから先の「この1ファイルをどう扱うか」へ進みます。
WordPressの不審なPHPファイルは5つの根拠で危険度を評価する
WordPressの不審なPHPファイルは、単独の特徴ではなく5つの根拠を重ねて評価します。
場所だけ、スキャン結果だけ、難読化コードだけに頼るより、誤検知と見逃しの両方を減らせます。
根拠1・2:由来と正規版との差分
まず、そのファイルがどの製品・機能に属するのかを調べます。
公式配布物、制作会社の納品物、Git管理、正常時バックアップに同じファイルがあれば、作成理由と変更履歴を確認できます。
正規版に存在しない、内容が大きく異なる、ヘッダーだけ同じで末尾にコードが追加されている場合は危険度が上がります。
ただし独自カスタマイズがあるサイトでは、差分があるだけで削除せず、変更担当者の記録まで照合してください。
根拠3:コードが担う機能と難読化
危険なコードは、外部入力をそのまま実行する、別ファイルを書き込む、認証を回避する、外部サーバーと通信する、といった役割を持つことがあります。
意味を読みにくくする長い文字列や、多段の変換処理も確認材料です。
ただし、圧縮・暗号化・ライセンス保護など正当な理由で読みにくいコードもあります。
特定の関数名を1つ見つけただけで断定せず、その入力がどこから来て、結果が何に使われるかを追う必要があります。
根拠4:作成時刻・所有者・権限の不整合
更新していない深夜に作られた、周辺ファイルと所有者が違う、実行に不要な広い権限が付いているなどの不整合は重要です。
同じ時刻に複数フォルダへ似たファイルが増えていれば、単発ではなく自動設置を疑います。
一方、サーバー移転やバックアップ復元では、多数の更新日時や所有者が変わることがあります。
直前の保守作業、移転、テーマ更新の時刻と照合し、正常な一括変更を攻撃と取り違えないようにします。
根拠5:アクセスログとサイト症状の一致
対象ファイルへ外部からPOSTが送られている、同じIPが直後に管理画面へアクセスしている、ファイル作成後にリダイレクトやスパムページが始まった。
このようにログと症状が一致すると、危険度は大きく上がります。
- 正規配布物に存在せず、公開URLから直接呼び出せる
- 外部入力を受け、ファイル作成や任意処理へ渡している
- 不自然な時刻に作成され、同時期の類似ファイルが複数ある
- アクセスログに繰り返し呼び出された記録がある
- 管理者追加、検索汚染、リダイレクトなどの症状と時期が合う
1項目だけなら要調査、複数が一致したら隔離優先、実行や侵害の証拠までそろえば緊急対応、という段階で考えると整理しやすくなります。
スコアを機械的に付けるより、根拠を文章で残す方が第三者にも伝わります。
WordPressの不審なPHPファイルは削除前に隔離と証拠保全を行う
WordPressの不審なPHPファイルの疑いが強まっても、次の行動は削除ではなく隔離と証拠保全です。
実行を止めながら、復旧・原因調査・再感染防止に必要な情報を残せるからです。

ファイルとデータベースを作業前の状態で保存する
対象ファイルだけでなく、WordPress一式とデータベースを保存します。
ファイル改ざんと同時に、不正ユーザー、予約投稿、ウィジェット、オプション値へ不正コードが残っている場合があるためです。
保存先は、同じ公開フォルダ内ではなく、外部ストレージやアクセス制限された領域を使います。
感染状態のバックアップは「復元用の安全なバックアップ」ではなく、「調査用の証拠」と明確に分けてください。
隔離はサイトへの影響を確認しながら行う
隔離とは、不審ファイルを公開URLから実行できない場所へ移し、元のパス・時刻・ハッシュを記録することです。
ただし、正規機能の一部だった場合は移動だけでも障害が起きるため、直前にバックアップと復旧手段を確認します。
アクセス集中や被害拡大が続いている場合は、サイト全体を短時間メンテナンス状態にする方が安全なこともあります。
売上や予約に影響するサイトでは、遮断範囲と連絡方法を決めてから実施してください。
保存した証拠には機密情報が含まれる前提で扱う
不審PHPには、外部送信先、認証情報、攻撃用のトークン、顧客データへの参照が含まれる可能性があります。
コードをそのまま公開すると、別の攻撃や情報漏えいにつながりかねません。
- 元の完全パス、ファイル名、サイズ、時刻、権限、所有者
- ファイルのハッシュ値と隔離後の保存先
- 発見時の画面、警告、アクセスログの該当部分
- 同時期に変更された周辺ファイルの一覧
- 隔離前後のサイト表示・管理画面・主要機能の確認結果
証拠保全ができれば、誤削除から戻せるだけでなく、どの入口から、いつ、どの範囲へ侵入したかを追いやすくなります。
隔離は削除を先延ばしにする作業ではなく、正しい削除範囲を決めるための手順です。
WordPressの不審なPHPファイルを削除・復元・相談に分ける判断基準
WordPressの不審なPHPファイルは、調査結果に応じて「正規版へ復元」「隔離を継続」「削除を含む駆除」「専門家へ相談」に分けます。
すべてを同じ方法で処理しないことが、サイトを壊さず被害を止めるポイントです。
正規ファイルの改ざんなら同じ版の正常ファイルへ戻す
WordPress本体や公式プラグインの既存ファイルへ不正コードが追記されている場合、単純削除すると必要な機能まで失います。
同じバージョンの正規配布物から正常ファイルへ置き換え、独自変更がないかを確認します。
置き換え後にサイトが表示されても、復旧完了ではありません。
別の場所にバックドアが残っていれば、正常ファイルが再び書き換えられるため、侵入口と同時刻の変更を追います。
不要な追加ファイルでも単体削除で終わらせない
正規配布物に存在せず、悪意ある機能と外部アクセスの証拠が確認できた追加ファイルは、駆除対象になります。
しかし、そのファイルを置いた仕組みが残っていれば、削除直後に同名または別名で再作成されます。
同時刻のファイル、管理者ユーザー、データベース、Cron、認証情報、脆弱なプラグインまで調査してください。
「削除後に再出現しないこと」を複数回確認して、初めて処理が有効だったと判断できます。
由来を確認できない場合は隔離を保ち専門判断へ切り替える
独自開発、古いテーマ、配布終了プラグインでは、比較元が見つからないことがあります。
その場合は「分からないから削除」ではなく、隔離前後の動作、呼び出し元、ログ、バックアップをそろえて判断を引き継ぎます。
- 正規版と一致する:削除せず、警告の別原因を確認
- 正規ファイルへ不正追記:証拠保存後、同じ版の正常ファイルへ復元
- 悪意ある追加ファイル:隔離し、関連ファイルと侵入口を含めて駆除
- 由来不明で機能への影響あり:隔離状態を保ち、開発元または専門家へ確認
- 情報流出・不正ユーザー・再生成あり:サイト遮断も検討し緊急相談
自分で続ける範囲に迷う場合は、危険サインを基準に切り替えてください。
特に個人情報、決済、会員機能があるサイトは、影響調査と報告の必要性まで含めた対応が求められます。
WordPressの不審なPHPファイルを見つけた後は再感染を防ぐ
WordPressの不審なPHPファイルを処理した後は、同じ入口と残存物を閉じるまでが復旧です。
見つかったファイルは原因ではなく、侵入後に生まれた結果の1つである可能性が高いからです。

同時刻の変更と永続化の仕組みを調べる
対象ファイルの前後に変更されたPHP、JavaScript、`.htaccess`、画像に偽装したファイルを確認します。
管理者ユーザー、WP-Cron、データベースのオプション、投稿本文、ウィジェットにも不審な登録がないかを調べます。
攻撃者は、1つが消されても別の仕組みから戻せるよう複数の入口を残すことがあります。
同じ文字列だけを検索するのではなく、作成時刻、通信先、権限、呼び出し関係で追うと別名の残存物を見つけやすくなります。
認証情報を安全な端末からまとめて変更する
WordPress管理者だけでなく、サーバー、FTP・SFTP、データベース、メール、ドメイン、CDNの認証情報を見直します。
感染した可能性がある端末から変更すると、新しいパスワードも盗まれる恐れがあるため、端末側の確認を先に行います。
不要な管理者とAPIキーを削除し、二要素認証を利用できる場所では有効にしてください。
WordPressの認証用ソルトを更新すると既存セッションを無効にできますが、作業中の利用者への影響もあるため計画して実施します。
脆弱性を塞いでからクリーンなバックアップを作り直す
WordPress本体、テーマ、プラグイン、PHPを安全な対応版へ更新し、使っていないものは停止だけでなく削除します。
ただし、更新前に互換性と復元手段を確認し、感染中の状態へ上書き更新するだけで駆除できるとは考えないでください。
駆除と侵入口対策が終わった後、改めてファイルとデータベースのバックアップを取得します。
感染時の証拠バックアップとは別に保管し、復元テストまたは中身の検証まで行うと、次回の異常時に安全な基準として使えます。
- 隔離したファイルや似たファイルが再生成されていない
- 不審な管理者、Cron、外部通信、検索結果が残っていない
- 漏えいの可能性がある認証情報とセッションを更新した
- 侵入口となった脆弱性・設定・不要機能を修正した
- 主要画面、フォーム、決済、メール、バックアップを検証した
駆除後に行う設定や監視は、公開済みの再感染防止記事でさらに詳しく整理しています。
不審ファイルが消えた瞬間ではなく、一定期間再発がないことまで確認しましょう。
WordPressの不審なPHPファイルに関するよくある質問
WordPressの不審なPHPファイルは根拠を残して判断する
WordPressの不審なPHPファイルを見つけた時は、放置と即削除のどちらにも飛びつかないことが重要です。
ファイル名だけでなく、場所、由来、正規版との差分、コード、作成時刻、ログを組み合わせて危険度を評価してください。
- 不審という印象だけでは安全・危険のどちらも断定しない
- 作業前にファイル一式、データベース、ログ、対象情報を保存する
- 同じ版の正規配布物と比較し、コードの役割まで確認する
- 疑いが強ければ削除より隔離を先に行う
- 1ファイルだけでなく侵入口・残存物・認証情報まで直す
正しい順番で記録すれば、正規ファイルの誤削除を避けながら、必要な駆除範囲を絞れます。
判断できない段階で無理に操作せず、保存した情報を専門家へ渡すことも安全な選択です。
WordPressの不審なPHPファイルを自分で判断できない時は

不審なPHPファイルの由来が分からない、削除後に再生成される、管理者や検索結果にも異常がある場合は、
クイックレスキューが感染範囲の調査から駆除・復旧・再感染防止まで対応します。
- 見覚えのないPHPファイルを消してよいか判断できない
- 隔離・削除しても同じファイルが再び作られる
- 検索結果やリダイレクトにも異常が出ている
- 顧客情報や認証情報への影響を調べたい
- サイトを壊さずマルウェアを完全に駆除したい
- 復旧・駆除できない場合は全額返金保証
- 90日間の再感染保証・動作保証
- 初期費用・調査費用0円





