JCA-NET の Web サーバでは、個人 Web サイト (URL に「~」が入る場所) で CGI を実行するときは、suEXEC という保護機構が働きます。
suEXEC 機構によって、個人 Web サイトに置かれている CGI スクリプト は、その Web サイトのユーザの権限で実行されるようになります。
たとえば、掲示板 CGI のようにサーバ上のファイルにデータを記録する タイプの CGI では、suEXEC 機構は大変有用です。その個人 Web サイト にインストールされた CGI でないと、データファイルを書き換えたり内 容を表示したりできないようになるからです。
ほかのユーザが誤って (あるいは故意に)、データを書き換えてしまったり、 データの中身を覗けてしまったり、といったことを防ぐことができます。
そういうわけで、JCA-NET では 個人 Web サイト での CGI 実行については、 suEXEC 機構による保護を実施しています。
逆に言うと、個人 Web サイト以外の場所に CGI を設置することは、かな り危険です。ほかのユーザが、データを書き換えて しまったり、データの中身を覗けてしまったり、といったことが起こりう るからです。
安全性を高めるために、CGI スクリプトは個人 Web サイト内に置くこと を強くお奨めします。
個人 Web サイトでは、つぎのようなパーミッション設定をすることをお 奨めします。個人 Web サイトでは、以下の説明より緩いパーミッション に設定した場合、CGI が正しく動作しないことがあります。
ファイル/ディレクトリ | パーミッション | |
---|---|---|
数字表記 | 文字表記 | |
CGI スクリプトのファイル | 744 | rwxr--r-- |
CGI スクリプトを置くディレクトリ | 755 | rwxr-xr-x |
ファイル/ディレクトリ | パーミッション | |
---|---|---|
数字表記 | 文字表記 | |
データファイル | 600 | rw------- |
データファイルを格納するディレクトリ | 700 | rwx------ |
ファイル/ディレクトリ | パーミッション | |
---|---|---|
数字表記 | 文字表記 | |
データファイル | 644 | rw-r--r-- |
データファイルを格納するディレクトリ | 755 | rwxr-xr-x |
独自名称 Web サイトでは、つぎのようなパーミッション設定をすることをお 奨めします。
ファイル/ディレクトリ | パーミッション | |
---|---|---|
数字表記 | 文字表記 | |
CGI スクリプトのファイル | 755 | rwxr-xr-x |
CGI スクリプトを置くディレクトリ | 755 | rwxr-xr-x |
ファイル/ディレクトリ | パーミッション | |
---|---|---|
数字表記 | 文字表記 | |
データファイル | 644 | rw-r--r-- |
データファイルを格納するディレクトリ | 755 | rwxr-xr-x |
既成の CGI や、CGI の解説書のなかには、suEXEC 機構を前提にしていな いものがしばしば見受けられます。これらは suEXEC 機構が利用できない ために、非常に危険な設定を奨めている場合があります。
CGI のインストールの説明につぎのような指示がある場合は、指示どおり にしてはいけません:
危険な指示の例
ファイルのパーミッションは 666 にしてください。
ファイルのパーミッションは 777 にしてください。
ディレクトリのパーミッションは 777 にしてください。
このような指示がある CGI は、個人 Web サイトにインストールしなけれ ばなりません。
また、パーミッションの設定については指示どおりにせず、上記「個人 Web サイトでのパーミッション設定について」にしたがってに設定します。