近年、インターネットの急速な発展と Web サイトの普及により、PHP は Web 開発に徐々に不可欠な言語になりました。ただし、成熟した Web サイトを開発する場合、特別な注意が必要なセキュリティ上の問題が発生することがよくあります。その中でも、PHP によるファイルの読み取りを禁止することは、セキュリティ上非常に重要な問題です。この記事では、PHPでファイルの読み込みを禁止する具体的な方法と意義について解説します。
1. PHP によるファイルの読み取りを禁止する必要があるのはなぜですか?
まず第一に、PHP はサーバー上のあらゆるファイルを簡単に読み取ることができる強力なサーバーサイド言語であることを明確にする必要があります。ただし、この機能を悪用すると、サーバーのセキュリティに重大なリスクが生じる可能性があります。したがって、サーバーのセキュリティを確保するには、PHP によるファイルの読み取りを禁止する必要があります。
PHP がサーバー上のファイルを自由に読み取ることができる場合、重要なファイルの削除、機密データの変更など、誰でも exec 関数またはシステム関数を呼び出すことによって危険なコマンドを実行できます。このようにして、サーバーのデータ セキュリティが大きく脅かされます。サーバー上のさまざまなファイルやデータのセキュリティを保護するには、PHP によるファイルの読み取りを禁止する必要があります。
2. PHP がファイルを読み取らないようにするにはどうすればよいですか?
PHP によるファイルの読み取りを禁止するのは比較的面倒な作業であり、望ましい効果を達成するには多くの作業が必要です。以下では、PHP によるファイルの読み取りを次の観点から禁止する方法を詳しく紹介します:
1. PHP による exec 関数および system 関数の呼び出しを禁止する
exec 関数および system 関数は、 PHP でよく使用される 2 つの関数は、すべて外部プログラムまたはコマンドを実行できます。場合によっては、この機能が不可欠です。ただし、Web サーバーではこれらの機能に誰でもアクセスできるとセキュリティ上大きなリスクが生じるため、これら 2 つの機能を制限する必要があります。
PHP の php.ini 設定ファイルには disable_functions オプションがあり、呼び出される関数を制限できます。 exec 関数と system 関数を無効にする必要がある場合は、次の内容を disable_functions に追加できます:
disable_functions = exec,system
このようにして、PHP はこれら 2 つの関数の呼び出しを禁止します。
2. PHP による特定のディレクトリへのアクセスの禁止
いくつかの重要なファイルとデータはサーバーに保存されており、これらのファイルとデータは非常に機密です。 PHP がこれらのファイルやディレクトリに自由にアクセスできる場合、サーバーのセキュリティに大きな脅威が生じます。
したがって、Apache や Nginx などの Web サーバーをセットアップして、PHP が特定のディレクトリにアクセスすることを禁止する必要があります。 Web サーバーの構成ファイルに次の内容を追加できます:
[Sat Jan 13 18:55:07 2018] [error] [client xxx.xxx.xxx.xxx] ファイルが存在しません: /var/ www/html/phpmyadmin/php
[Sat Jan 13 19:15:02 2018] [エラー] [クライアント xxx.xxx.xxx.xxx] PHP 警告: file_get_contents(/var/www/html/wp
[Sat Jan 13 19:17:27 2018] [error] [client xxx.xxx.xxx.xxx] ファイルが存在しません: /var/www/html/test
Apache と Nginx を表示アクセスログを確認すると、上記と同様のエラー記録が多数あることがわかります。このうち、/var/www/html/ が Web ルートディレクトリです。/var/www/html/phpdata などの新しいディレクトリを作成できます。 /, 機密ファイルとデータを保存します。その後、Apache や Nginx などの Web サーバーを構成することで、PHP がこのディレクトリにアクセスすることを禁止できます。
3. PHP によるファイルへのアクセスの禁止
PHP によるファイルへのアクセスを禁止する方法も非常に簡単で、ファイルのアクセス許可の制御です。ファイルの読み取りおよび書き込みのアクセス許可を設定することで、PHP が指定されたファイルを読み取らないようにすることができます。 chmod コマンドを使用して、ファイルのアクセス許可を 600 または 700 に設定します。この方法では、ファイルの所有者 (通常は管理者) は読み取りまたは書き込みができますが、他のユーザーは読み取りまたは書き込みできません。次のコマンドを使用してアクセス許可を設定できます:
$ chmod 600 filename
$ chmod 700 dirname
つまり、サーバーのセキュリティを保護するには、PHP によるファイルの読み取りを禁止する必要があります。これと同じ効果が得られます。
3. 概要
PHP によるファイルの読み取りを禁止することは、サーバーのセキュリティを効果的に保護できる重要なセキュリティ対策です。 Web アプリケーションを作成するときは、セキュリティの問題に常に注意を払い、ハッカーによる攻撃を回避するための一連の対策を講じる必要があります。この記事が役に立ち、サーバーのセキュリティをより良く保護できることを願っています。
以上がPHPでファイルの読み込みを禁止する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。