ホームページ > バックエンド開発 > PHPの問題 > PHPでディレクトリファイルの表示を無効にする方法

PHPでディレクトリファイルの表示を無効にする方法

PHPz
リリース: 2023-04-11 14:16:18
オリジナル
1100 人が閲覧しました

毎日の PHP 開発プロセスでは、必要なファイルやリソースを見つけるためにブラウザでファイル ディレクトリ構造を表示することが必要になることがよくあります。ただし、これによりディレクトリ構造が権限のない訪問者に公開されることになり、セキュリティ上の脅威が生じる可能性があります。そのため、ブラウザでのディレクトリファイルの表示を禁止することが基本的なセキュリティ対策となっています。 PHP には、ディレクトリ ファイルの表示を抑制する簡単な方法がいくつかあります。

使用方法 1: .htaccess ファイルで構成する

最も一般的な方法は、Web サイトの .htaccess ファイルにルールを追加して、ブラウザーがディレクトリ ファイルを表示しないようにすることです。 .htaccess ファイルは、Apache Web サーバーの構成ファイルです。仮想ホストまたは特定のディレクトリにパラメータを設定して、権限、ファイアウォール、ディレクトリ アクセスなどの設定を制御できます。

次のコードを使用して、ディレクトリ ファイルを .htaccess ファイルに禁止するルールを追加できます。

ブラウザでディレクトリ ファイルが表示されないようにします

Options -Indexes

上記のコードは、ディレクトリ ファイルへのブラウザのアクセスを無効にします。つまり、ディレクトリにアクセスすると、「403 Forbidden」エラー メッセージが返されます。

方法 2: PHP ファイルにコードを追加する

.htaccess ファイルの構成に加えて、PHP ファイルにコードを埋め込んで同じ効果を実現することもできます。ディレクトリ ファイルを禁止する必要がある PHP ファイルに、次のコードを追加します。

// ディレクトリ ファイルの表示を抑制 list
header('Content-Type:text/html ; charset=utf-8');
if(is_dir($_SERVER['PATH_INFO'])) {

header('HTTP/1.1 403 Forbidden');
echo 'Access Denied';
exit();
ログイン後にコピー

}
?>

上記のコードでは, まず、アクセスされたパスがディレクトリであるかどうかを判断します。その場合、「403 Forbidden」エラー メッセージが送信され、「Access Denied」メッセージが出力され、ブラウザはディレクトリ ファイルのリストを表示できなくなります。

使用方法 3: Web サーバーの構成を変更する

最後に、もう 1 つの方法は、Web サーバーの構成を変更することです。 Apache Web サーバーの場合は、Apache のデフォルト設定ファイル /etc/httpd/conf/httpd.conf を変更できます。次のコードを見つけます:

Options Indexes FollowSymLinks
AllowOverride All
Require all granted
ログイン後にコピー

「Options」の後のパラメータで、ブラウザーにディレクトリ ファイルが表示されないようにするには、[インデックス] オプションを削除します。

概要

.htaccess ファイルで構成するか、PHP ファイルにコードを埋め込むか、Web サーバーの構成を変更することで、ブラウザーにディレクトリ ファイル リストが表示されないようにすることができます。 。このセキュリティ対策により、ディレクトリ構造とファイル リソースを違法なアクセスやダウンロードから保護できます。したがって、PHP プログラムを作成する場合は、Web セキュリティ保護を強化するために次の措置を講じることをお勧めします。

以上がPHPでディレクトリファイルの表示を無効にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート