最も必要とされている時に、信頼できるWordPressチュートリアルを。
WordPress入門ガイド
WPBカップ
2500万人以上
当社のプラグインを使用しているウェブサイト
16+
WordPress経験年数
3000+
専門家によるWordPressチュートリアル

WordPressの特定のディレクトリでPHP実行を無効にする方法

WordPressのアップロードフォルダに見慣れないPHPファイルを見つけるのは恐ろしい瞬間です。この脆弱性を発見した後、パニックに陥った何千人ものユーザーのサイトを保護するお手伝いをしてきました。

この問題は、ウェブサイトを攻撃者に対して無防備な状態にする隠れたセキュリティギャップを露呈します。ハッカーは、これらの保護されていないディレクトリを使用して悪意のあるスクリプトをアップロードし、隠しバックドアを作成します。

幸いなことに、いくつかの簡単な調整でこの一般的な攻撃方法をブロックできます。WordPressでPHP実行を無効にすると、悪意のある攻撃者がウェブサイトを制御することがより困難になります。

必要のないWordPressディレクトリでのPHP実行をブロックすることで、主要なセキュリティの抜け穴を塞ぎます。

サイトを保護する方法をステップバイステップで正確にご紹介します。WordPressディレクトリをロックダウンし、苦労して作成したものを安全に保つ方法を学ぶために、読み進めてください。

WordPressの特定のディレクトリでPHP実行を無効にする方法

特定のWordPressディレクトリでPHP実行を無効にする理由

デフォルトでは、WordPressは特定のディレクトリを書き込み可能にしているため、あなたやその他の権限のあるユーザーは、テーマ、プラグイン、画像、動画をウェブサイトに簡単にアップロードできます。

しかし、この機能は、ハッカーがバックドアアクセスファイルやマルウェアをWordPressサイトにアップロードするために使用できるなど、悪意のある手に渡ると悪用される可能性があります。

これらの悪意のあるファイルは、WordPressのコアファイルとして偽装されていることがよくあります。それらは主にPHPで書かれており、バックグラウンドで実行されてウェブサイトのあらゆる側面に完全にアクセスできます。

恐ろしいですよね?

心配しないでください。簡単な解決策があります。必要のない特定のディレクトリでは、PHPの実行を無効にするだけです。そうすることで、それらのディレクトリ内でPHPファイルは実行されなくなります。

.htaccessファイルを使用してPHP実行を無効にすることで、WordPressのセキュリティを向上させる方法を見てみましょう。

.htaccessファイルを使用して特定のWordPressディレクトリでのPHP実行を無効にする

ほとんどのWordPressサイトでは、ルートフォルダに.htaccessファイルがあります。これは、最も人気のあるWebサーバーソフトウェアの1つであるApacheによって使用される設定ファイルです。(ホストがNginxのような別のサーバーを使用している場合は、心配しないでください。以下のFAQセクションで説明します。)

注意:マネージドWordPressホスティングプロバイダーを使用している場合、サイトを安全に保つために、アップロードフォルダでのPHP実行はデフォルトでブロックされている可能性が高いです。不明な場合は、サポートチームに問い合わせて確認してください!

この強力な設定ファイルは、管理エリアのパスワード保護、ディレクトリブラウジングの無効化、SEOフレンドリーなURL構造の生成などに使用されます。

デフォルトでは、.htaccessファイルはWordPressウェブサイトのルートフォルダにありますが、WordPressの内部ディレクトリ内に追加の.htaccessファイルを作成して使用することもできます。

バックドアアクセスファイルからウェブサイトを保護するには、.htaccessファイルを作成し、サイトの/wp-content/uploadsディレクトリにアップロードする必要があります。ここはハッカーが悪意のあるスクリプトを隠そうとする最も一般的な場所であり、ロックダウンする最も重要なフォルダです。

コンピューター上で、メモ帳(Windows)やTextEdit(Mac)のようなプレーンテキストエディタを使用して新しいファイルを作成するだけです。Macを使用している場合は、必ずトップメニューのFormat » Make Plain Textに移動してください。

次に、空のファイルを保存し、名前を正確に.htaccessと付けます(.htaccess.txtとして誤って保存されないように注意してください)。

次に、以下のコードを .htaccess ファイルにコピー&ペーストします。

<Files *.php>
  Require all denied
</Files>

このコードは、このフォルダ内から直接 .php で終わるファイルを実行しようとする試みをサーバーにブロックするように指示します。コードを貼り付けたら、ファイルを保存してください。

次に、このファイルをWordPressホスティングサーバーの/wp-includesおよび/wp-content/uploadsフォルダにアップロードする必要があります。

プロのヒント:間違いを犯して、このファイルをアップロードした後にウェブサイトにエラーが表示された場合は、パニックにならないでください!FTPクライアントを使用してアップロードしたばかりの.htaccessファイルを削除するだけで、サイトはすぐに元に戻ります。

ホスティングアカウントのcPanelダッシュボードにあるFTPクライアントまたはファイルマネージャーアプリを使用してアップロードできます。

Bluehost ファイルマネージャーのアップロードボタンをクリックする

上記のコードを含む.htaccessファイルを追加すると、これらのディレクトリでPHPスクリプトが実行されなくなります。

ボーナス:WordPressでディレクトリブラウジングを無効にする

.htaccessファイルを編集している間に、WordPressのセキュリティを向上させるためにもう1ステップ実行することを強くお勧めします。それはディレクトリブラウジングを無効にすることです。

デフォルトでは、ウェブサーバーがフォルダ内にインデックスファイル(index.phpやindex.htmlなど)を見つけられない場合、そのディレクトリ内のすべてのファイルとフォルダを表示するページが自動的に表示されます。

ハッカーはディレクトリブラウジングを好みます。なぜなら、これによりファイル内を簡単に探索し、脆弱性を探すことができるからです。

これを停止するには、メインのウェブサイト.htaccessファイル(アップロードフォルダに追加したものではなく、ルートディレクトリにあるもの)にコードを1行追加するだけです。

Options -Indexes

より詳細な手順については、WordPressでディレクトリブラウジングを無効にする方法に関する専用ガイドをご覧ください。

Sucuriを使用してWordPressのバックドアをチェックする

この.htaccessトリックを使用すると、WordPressのセキュリティを強化できますが、すでにハッキングされたWordPressサイトを修正することはできません。

バックドアは巧妙に偽装されており、すでに普通に見える場所に隠されている可能性があります。

ウェブサイトにバックドアがないか確認したい場合は、ウェブサイトでSucuriを有効にする必要があります。

Sucuri

Sucuriは、市場で最高のWordPressセキュリティプラグインです。ウェブサイトを脅威、疑わしいコード、マルウェア、脆弱性の可能性についてスキャンします。

また、ファイアウォールをサイトと疑わしいトラフィックの間に配置することで、ほとんどのハッキング試行がサイトに到達するのを効果的にブロックします。

最も重要なのは、WordPressサイトがハッキングされた場合、それをクリーンアップしてくれることです。詳細については、長年サービスを利用してきたため、Sucuriレビューをお読みください。

ハッキングされたWordPressサイトのバックドアを見つけて修正する方法に関するガイドで詳細を確認できます。

PHP実行の無効化に関するよくある質問

特定のディレクトリでPHP実行を無効にすることによるWordPressセキュリティの強化について、よく寄せられる質問を以下に示します。

1. .htaccessファイルとは何ですか?また、どこにありますか?

.htaccessファイルは、Apache Webサーバーによって使用されるサーバー設定ファイルです。WordPressでは、ウェブサイトのURL構造などを制御し、セキュリティルールを追加するために使用できます。通常、WordPressインストールのメインルートフォルダにあります。

2. アップロードフォルダでPHP実行を無効にすると、私のウェブサイトは壊れますか?

いいえ、このセキュリティ対策はウェブサイトの通常の運用に影響を与えるべきではありません。wp-content/uploads ディレクトリは、PHP ファイルを実行するためではなく、画像や動画などのメディアアップロード専用です。テーマやプラグインは、PHP 実行が安全に許可されている別のフォルダーに必要なファイルを保持します。

3. この.htaccessトリックだけでサイトを完全に保護できますか?

これは効果的で重要なセキュリティ対策ですが、完全なセキュリティ計画の一部にすぎません。完全な戦略には、WordPressセキュリティプラグインの使用、すべてのテーマとプラグインの更新、すべてのユーザーに対する強力なパスワードの強制も含まれるべきです。

4. ウェブホストがApacheではなくNginxを使用している場合はどうなりますか?

.htaccess ファイルのトリックは Apache ウェブサーバーでしか機能しません。WordPress ホスティングプロバイダーが Nginx を使用している場合、.htaccess ファイルを使用して WordPress ディレクトリでの PHP 実行を無効にすることはできません。

代わりに、Nginx では、アップロードフォルダーへの PHP アクセスを拒否するために、サーバーの nginx.conf 設定ファイルに直接特定のルール(「location block」)を追加する必要があります。

注意: Nginx 設定ファイルの編集は高度なタスクです。単一の構文エラーでも、ウェブサーバー全体がクラッシュする可能性があります。さらに、多くのマネージド WordPress ホストでは、これらのコアファイルへのアクセスが制限されています。

このため、ホスティングプロバイダーのサポートチームに連絡することを強くお勧めします。彼らは数分で、サーバーに適切な Nginx 拒否ルールを安全に追加してくれます。

5. .htaccess ファイルを追加した後にエラーが発生した場合はどうすればよいですか?

まず、心配しないでください!ウェブサイトを永久に壊したわけではありません。アップロードした .htaccess ファイルを /wp-content/uploads フォルダーから削除するだけで、サイトはすぐにオンラインに戻ります。

ファイルをアップロードした後に「500 内部サーバーエラー」が表示された場合は、通常、ウェブホストが古いバージョンの Apache サーバーソフトウェアを使用していることを意味します。これを修正するには、.htaccess ファイルを開き、追加したコードを次のスニペットに置き換えてください。

<Files *.php>
deny from all
</Files>

ファイルを保存して再アップロードしてください。この古いバージョンのコードは同じことを行いますが、古いサーバーとの互換性があります。

WordPress セキュリティを強化する方法に関する追加リソース

この記事が、WordPressのセキュリティを強化するために特定のWordPressディレクトリでPHPの実行を無効にする方法を学ぶのに役立ったことを願っています。WordPressのセキュリティを向上させるための他のいくつかのセキュリティ技術についても知りたいかもしれません。WordPressのセキュリティを向上させるための最も優れたガイドをいくつかご紹介します。

この記事が気に入った場合は、WordPressのビデオチュートリアルのために、YouTubeチャンネルを購読してください。また、TwitterFacebookでも私たちを見つけることができます。

開示: 当社のコンテンツは読者によってサポートされています。これは、一部のリンクをクリックすると、手数料が発生する可能性があることを意味します。WPBeginnerがどのように資金調達されているか、なぜそれが重要なのか、そしてどのように私たちをサポートできるかを確認してください。こちらが当社の編集プロセスです。

究極のWordPressツールキット

無料のツールキットにアクセスしましょう - すべてのプロフェッショナルが持つべきWordPress関連の製品とリソースのコレクションです!

読者とのインタラクション

42 CommentsLeave a Reply

  1. wp-includesフォルダでのPHP実行を無効にすることについて、バックドアコードの実行を防ぐためなど。しかし、admin-bar.phpやauthor-template.phpのように、実行される必要があると思われるPHPファイルが多数存在します。このフォルダに.htaccessファイルを配置すると、これらのファイルの実行が停止し、WordPressのコア機能が損なわれる可能性があるのではないかと疑問に思っています。ところで、あなたのウェブサイトの多くのすばらしい記事に感謝します。

    • ファイルに機能を追加する特定のプラグインがない限り、フォルダ内のPHP実行を妨げる問題はないはずです。

      管理者

      • ご返信ありがとうございます。私の設定はシンプルです。astra/spectra、malcare、all in one seoです。その場合、.htaccessをwp-includesにも配置します。素晴らしい記事をたくさんありがとうございます。

  2. PHPの実行をフォルダで無効にすることで、ウェブサイトを保護する素晴らしい方法だと思います。この記事によると、保護されているのは2つのディレクトリだけですが、他のディレクトリはどうなりますか?それらは自然に保護されていますか、それともハッカーは攻撃中にそれらを必要としませんか?

    • 通常、サイトの他のセクションのファイルには、より厳格なアクセス権が必要であったり、サイトの動作に不可欠なPHPファイルが含まれています。

      管理者

  3. これらの安全に関するヒントをありがとうございます。htaccess ファイルを作成し、FTP にアップロードします。自分のサーバーにウェブサイトがあるので、セキュリティの問題はすべて私次第です。WordPress をさらに安全にするための次のステップをありがとうございます。

  4. Updraftプラグインでバックアップが行われていないというアラートも表示されていますが、これは.htaccessが原因でしょうか?

    「バックアップディレクトリを作成できませんでした…

    フォルダは存在しますが、ウェブサーバーには書き込み権限がありません。WordPress プラグインがディレクトリに書き込むための権限を設定する方法については、ウェブホスティングプロバイダーに相談する必要があります。(wp-content/updraft)

  5. FYI: .htaccess スニペットのコードスニペットにタイポがあります。

    コードスニペットを閉じスラッシュなしでそのまま使用すると、画像の読み込みが壊れます。

  6. アップロードフォルダにプラグインによって作成された.phpファイルがいくつか見つかりました。これは問題ないと考えてよいでしょうか、それとも各プラグインを個別に分析する必要がありますか?

    • プラグインに問い合わせれば、それらのファイルに関する詳細を知ることができます。

      管理者

  7. 素晴らしい文章です!情報発信の才能がありますね。あなたのコンテンツには言葉を超えた感銘を受けました。あなたの文章には多くの敬意を抱いています。このトピックに関する貴重な情報提供に感謝します。

  8. 皆さん、.htaccessファイルを間違って編集してしまったようです。ウェブサイトに画像が全く表示されません。

    • Thatoさん、こんにちは。

      .htaccessファイルをバックアップとしてコンピューターにダウンロードし、ウェブサイトから削除できます。WordPress管理エリアの設定 » パーマリンクに移動し、変更を保存ボタンをクリックします。これにより、.htaccessファイルが再生成されるはずです。

      管理者

  9. wp-contentは行わないでください。
    wp-content/uploadsは行ってください。

    そしてこれです:

    order allow,deny
    denied from all

    サーバーによって大きく異なります。

  10. ウェブページへのアップロードファイルに影響しますか?
    このhtaccessファイルをフォルダにアップロードした後、多くの投稿の画像が表示されなくなりました。

  11. はい、includes ディレクトリ内の php ファイルへのアクセスを拒否すると、サイトが壊れます。これは、include が .htaccess の制限に従うためです。

    しかし、アップロードディレクトリへの制限は非常に賢明であり、これはデフォルトでアップロードディレクトリに存在するべきであり、存在しないことに良い理由はありません。

  12. OMG!/wp-includesフォルダへの書き込みアクセスを無効にすることはできませんか?
    原因を防げるのに、なぜ結果と戦うのですか?

  13. これをApacheの仮想ホストに入れることもできます。これにより、同じことが達成されます。

    注文許可、拒否
    すべて拒否

  14. ファイル拡張子に小文字と大文字の組み合わせがある場合、例えば.phpのような場合に、このコードを実装するにはどうすればよいですか?私のウェブサイトでは機能しますが、ファイル名が.PHp、.PHP、.PhP、またはそれらの組み合わせの場合、バックドアスクリプトは引き続き実行されます。

    ありがとうございます

  15. サイード様、
    大変有益な投稿をありがとうございます。実際、これはWordPressをハッカーから守るための素晴らしいソリューションを提供しています。

  16. wp-includesフォルダに.htaccessファイルを作成しました。サイトは問題なく表示されましたが、管理画面のWYSIWYGエディタが機能しませんでした。.htaccessファイルを削除する必要がありました。(WP 3.9.1)

  17. wp-includesフォルダがphpファイルでいっぱいになっていることも見つけました。そこに.htaccessファイルを使用しても何も壊れないとは思いません。アップロードディレクトリでは使用しました。

  18. 私の英語が下手でごめんなさい…
    この記事の指示はすべて実行したのですが、ダッシュボードで新しい投稿を追加しようとすると、投稿セクションがめちゃくちゃになってしまいました。… .htaccess が問題だと疑っています。
    それを削除したら、投稿は問題なく表示されました。

  19. .htaccessファイルをwp-includesに追加しましたが、問題はありませんでした。ヒントをたくさんありがとうございます。

  20. PHPファイルでいっぱいの/wp-includes/ディレクトリでこれを試しました。もちろん、サイトにアクセスできなくなりました。.htaccessファイルで使用するためにincludesディレクトリを含めることを本当に意味しましたか?

    /wp-includes/images のことでしょうか?

    • いいえ。/wp-includes/ フォルダのことです。当社の wp-includes フォルダにこれがあります。何らかの理由でサイトが壊れる場合は、wp-includes フォルダから .htaccess ファイルを削除してください。

      管理者

      • 不思議なことに、私の wp-includes フォルダには 90 を超える php ファイルがあります。そして、それはサイトを壊します。すぐに元に戻しました。

        しかし、/wp-content/uploads/ フォルダに入れましたが、そこでは問題なく動作しています。返信ありがとうございます。

        • PHPファイルが多数存在するディレクトリにPHPファイルへのアクセスを拒否するhtaccessファイルを置くのは、奇妙に思えます。これらのファイルは通常、インクルードされるだけで直接実行されないためだと推測します。もしそうなら、ディレクトリ全体へのアクセスを拒否する方が良いのではないでしょうか?

返信する

コメントいただきありがとうございます。すべてのコメントは、コメントポリシーに従ってモデレーションされ、メールアドレスは公開されません。名前フィールドにキーワードを使用しないでください。個人的で意味のある会話をしましょう。