POEM

株式会社 市民電子情報網 


CGI、SSI の使いかた

POEMホスティングパックの Web サイト では、CGI と SSI がご利用になれます。

CGI、SSI の設置

CGIスクリプト や SSI を使うページのファイル名は、拡張子が決まっています。

種類ファイル名
CGIスクリプトxxxx.cgi
SSIページxxxx.shtml
普通のHTMLページxxxx.html
xxxx.htm

また、CGIスクリプトでは、ファイルのパーミッション (モード) も変更する 必要があります (下記参照)。

CGI のパーミッション (モード) について

suEXEC について

POEMホスティングパック の Web サーバでは、CGI を実行するときは、 suEXEC という保護機構が働きます。

suEXEC 機構によって、Web サイトに置かれている CGI スクリプト は、その Web サイト独自のユーザの権限で実行されるようになります。

たとえば、掲示板 CGI のようにサーバ上のファイルにデータを記録する タイプの CGI では、suEXEC 機構は大変有用です。Web サイト に正しくインストールされた CGI でないと、データファイルを書き換えたり 内容を表示したりできないようになるからです。

ほかの Web サイトの利用者が誤って (あるいは故意に)、 データを書き換えてしまったり、 データの中身を覗けてしまったり、といったことを防ぐことができます。

  • CGI スクリプトを呼び出すフォームのページは、POEM ホスティングパック の Web サイトになくてもかまいません。

パーミッション設定について

CGI スクリプトをインストールするときは、 つぎのようなパーミッション設定をすることをお 奨めします。以下の説明より緩いパーミッション に設定した場合、CGI が正しく動作しないことがあります。

CGI スクリプトと、CGI スクリプトを置くディレクトリ のパーミッション

ファイル/ディレクトリ パーミッション
数字表記 文字表記
CGI スクリプトのファイル 744 rwxr--r--
CGI スクリプトを置くディレクトリ 755 rwxr-xr-x

注意
  • この設定では、POEMホスティングパックの利用者であれば、 CGIスクリプトの中身を覗くことができます。
    ですから、CGI スクリプトの中に重要な情報 (たとえば掲示板管理者の パスワードなど) を書き込むのはやめましょう。
    重要な情報は CGIスクリプト とは別のデータファイルに書いておき、 スクリプト実行時に読み込むようにします。そのデータファイルはほかの Web サイトの利用者が覗くことができないようにパーミッションを 設定しておきます (下記参照)。

CGI スクリプトが読書きするデータファイルと、それを格納するディレク トリのパーミッション

データファイルの内容をほかの Webサイトの利用者が見ることができない (CGIスクリプト からしか読書きできない) ようにする場合

ファイル/ディレクトリ パーミッション
数字表記 文字表記
データファイル 600 rw-------
データファイルを格納するディレクトリ 700 rwx------

データファイルの内容をほかの Webサイトの利用者が見ることができる (書き換えることはできない) ようにする場合

ファイル/ディレクトリ パーミッション
数字表記 文字表記
データファイル 644 rw-r--r--
データファイルを格納するディレクトリ 755 rwxr-xr-x

危険なパーミッション

既成の CGI や、CGI の解説書のなかには、suEXEC 機構を前提にしていな いものがしばしば見受けられます。これらは suEXEC 機構が利用できない ために、非常に危険な設定を奨めている場合があります。

CGI のインストールの説明につぎのような指示がある場合は、指示どおり にしてはいけません:

危険な指示の例
ファイルのパーミッションは 666 にしてください。
ファイルのパーミッションは 777 にしてください。
ディレクトリのパーミッションは 777 にしてください。

このような指示がある CGIスクリプト は、 パーミッションの設定については指示どおりにせず、 上記「パーミッション設定について」にしたがって設定します。

  • ファイルのパーミッション 666 や 777 は、POEMホスティングパック の利用者であればだれでもファイルの中身を覗いたり、 書き換えたりできる状態です。
    ディレクトリのパーミッション 777 は、POEMホスティングパック の利用者であればだ れでもディレクトリの中にファイルをつくったり、ファイルを消したり できる状態です。
    ですから、POEMホスティングパック のほかの Webサイトの利用者が誤って (あるいは故意に)、そのような操作ができるような CGIスクリプト をつくってしまえば、Web を通じて世界中 どこからでも、ファイルの読書き、作成、削除ができてしまうことにな ります。