3

Web サーバーの cgi-bin フォルダー/ディレクトリに保存する必要がある/保存しないファイルは何ですか?

明らかに、Web ブラウザから呼び出された Web アプリケーションを構成する実行可能なスクリプト/ファイルをそこに保存できます。

しかし、そこに他に何を保管できるかについて、業界で一般的な意見はありますか?

スクリプト/実行可能ファイル以外に何も許可されていないという非常に強い理由はありますか?

私の好みは、アプリケーションに属するすべてのファイルを cgi-bin ディレクトリ/フォルダに、アプリケーションごとにサブフォルダとして保存することです。

たとえば、ディレクトリ cgi-bin/myapplication には次が含まれます。

  • cgi スクリプト/実行可能ファイル
  • データファイル
  • 構成ファイル

これにより、インストールが簡素化され、新しいバージョンの試用など、異なるバージョンのアプリケーションを並行して実行する手順も簡素化されます。

スクリプト以外のファイルへのセキュリティ アクセスに関する懸念は、適切なユーザー権限と Apache .htaccess を使用してディレクトリとファイルへのアクセスを制御することで対処できます。

人気のある無料のアプリケーションは、このすべてを 1 つのディレクトリの下に配置するアプローチを支持しているようです。無料の欠陥および機能追跡ツールである bugzilla のバージョン (3.4.4 など) はこの構造で提供されますが、以前のバージョン (2 など) はこの構造で提供されます。 .x は、bugzilla コンポーネントを少なくとも 3 つのフォルダーにインストールしました。

強力で人気のある無料のコンテンツ管理システムである Drupal も、cgi-bin フォルダーを使用していませんが、1 つのディレクトリの下にすべてをまとめるというこのアプローチを採用していますが、アプローチは同じです。

あなたの考えは何ですか?

4

1 に答える 1

4

cgi-bin フォルダーについて特別なことは何もありません。これは、「allow-script」フラグが設定された(または Web サーバーの同等の)公的にアクセス可能な Web フォルダーのようなものです。これは、PHP/JSP などの世界ではほとんど意味をなさないものになっています。

公開したいファイルのみを webroot の下の任意のフォルダーに保存する必要があります。データと設定をインターネット上のユーザーがダウンロードできるようにしたくないので、それらを /cgi-bin に保存しないでください。

特定のサーバーは、要求があれば /cgi-bin 内の任意のファイルを実行しようとする場合があります。これは、特にテキスト ファイルまたはデータ ファイルがシェル スクリプトとして実行される場合に問題を引き起こす可能性があります。

Drupal のようなアプリケーションは、Web ホストに対するアクセス許可に関係なく、誰でも簡単にインストールできるように設計されています。これが、すべてをまとめておく主な理由です。必要な場所にファイルを配置できる場合は、公開されていないファイルを webroot の外に置くことを常にお勧めします。それらを webroot の下に保持する必要がある場合は、サーバーの構成を使用して、非公開ファイルへの公開アクセスを拒否していることを確認してください。

于 2009-12-16T13:09:14.243 に答える