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

WordPressのアップロードフォルダに奇妙なPHPファイルを見つけるのは不安なものです。私たちはこの感覚をよく知っています。なぜなら、同じ問題を抱えた何百人ものユーザーを支援してきたからです。

これは、多くの人が見落としがちなセキュリティの脆弱性を示していることがよくあります。ハッカーは書き込み可能なディレクトリを悪用して悪意のあるスクリプトをアップロードし、ウェブサイトへのバックドアアクセスを可能にします。

良いニュースは、彼らが好む攻撃方法の1つをブロックする簡単な方法があることです。特定のフォルダで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セクションで説明します。)

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

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

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

新しいファイルをコンピュータ上に作成するには、メモ帳(Windowsの場合)やTextEdit(Macの場合)のようなテキストエディタを使用します。次に、空のファイルを .htaccess という名前で保存します。

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

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

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

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

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

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

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

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

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

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

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

Sucuri

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

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

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

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

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

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

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

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

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

いいえ、このセキュリティ対策はウェブサイトの通常の動作に影響を与えるべきではありません。wp-content/uploads および wp-includes ディレクトリは、直接実行されるPHPファイルを含むことを意図していません。テーマやプラグインは、PHP実行が許可されている別のフォルダに必要なファイルを保持しています。

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

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

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

.htaccess ファイルはApacheウェブサーバーでのみ機能します。ホスティングプロバイダーがNginxを使用している場合、同じ結果を得るには、サーバーの設定ファイルに別のルールを追加する必要があります。プラットフォームに適したコードについては、ホストのサポートチームに連絡することをお勧めします。

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

ごくまれに、ファイルをアップロードした後に「500 Internal Server Error」が表示されることがあります。これは通常、ウェブホストが古いバージョンの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ファイルを置くのは、奇妙に思えます。これらのファイルは通常、インクルードされるだけで直接実行されないためだと推測します。もしそうなら、ディレクトリ全体へのアクセスを拒否する方が良いのではないでしょうか?

返信を残す

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