おそらくみなさんは、CGI を利用している、もしくは CGI を利用しようとお考えのことでしょう。しかし、サーバによって環境はまちまちで、CGI 作者が意図しない環境である場合も多々あります。また、パーミッションも CGI のマニュアル通りでは動作しないことも多々あります。ここでは、CGI 利用におけるサーバ環境のトピックを説明します。みなさんの使いやすいサーバ選択の目安にして下さい。
■ CGI 実行権限
CGI 実行権限とは、どのアカウント(権限)で CGI がサーバー上で実行されるかということです。意外とサービス説明に掲載されていないことが多いのですが、CGI や パーミッションに自信がない方には意外と重要です。CGI 実行権限は 2 通りあり、owner 権限で実行されるか、other 権限で実行されるかのどちらかです。結論を言うと、owner 権限で実行されるサーバを選択されることをお勧めします。
- owner 権限で実行
CGI があなたのアカウントの権限で実行されます。この場合、パーミッションの設定は非常に簡単になります。CGI 本体のみを 704 にすればよくて、その他のファイルやディレクトリ(フォルダ)は、FTP でアップロードするだけで OK となることが多いです。従って、CGI セッティングのトラブルに見舞われる可能性が低くなります。また、セキュリティーの観点からも owner 権限での実行の方が安心できます。CGI が生成するログなどのファイルは、owner に書込み権限が必要です。その代わり、other には書込み権限が必要となりません。もっというと、読み込み権限も与える必要がありません。読込み権限を与えなければ、ブラウザーからのアクセスで見られることがありませんので安心です。個人情報が書き込まれるようなログファイルには注意が必要です。
- other 権限で実行
CGI が other の権限で実行されます。other とは、ホームページを閲覧する場合に使われる権限で、もっとも権限が低いものとなります。しかし CGI が other 権限でしか実行できないとなると、CGI が生成するログなどのファイルの owner が other となります。もしくは、事前にファイルを作成しておき、otherに書込み権限を与えなければいけません。また、当然のことながら、読込み権限を other にも与えなければいけません。つまり、CGI が生成したファイルを、ブラウザーから直接見ることもできてしまうわけです。CGI の作り方、仕様にもよりますが、そんなことまで調べて使う方はほとんどいないでしょう。
CGI セッティングにおいても、パーミッションの設定には注意が必要です。CGI が other 権限で実行されるため、CGI が生成するファイルが格納されるディレクトリ(フォルダ)のパーミッションにも意図的に変更する必要があります。概ね 707 で動作するようですが、セキュリティー上、あまりよろしくありません。CGI が出力するファイル名で回避するしかありません。たとえば、拡張子を「.cgi」にするなどです。拡張子が「.cgi」であれば、サーバでは CGI ファイルと認識されるため、ブラウザーで直接アクセスしても Internal Server Error となり、見ることができないようにすることができます。
もう一点、問題点があります。CGI が生成したファイルの owner は other になることは前述のとおりですが、この場合、FTP でファイルを削除することはできるけれども、ダウンロードできないサーバもあります。バックアップなどができないわけですから、大変不便です。
■ Perl のバージョン
一部のプロバイダーでは、Perl のバージョンが 4 だけだったということがありました。現時点では、Perl のバージョンは 5 となっており、CGI 作者も Perl 5 を前提に作成することが多くなりました。この場合、Perl 4 の環境しかないサーバでは動作しませんので、注意が必要です。
■ Perl モジュールの実装
Perl には、各種機能を備えた Perl モジュールというものがあります。特に標準モジュールというのは、Perl 5 にはじめから実装されているモジュールです。しかし、一部のブロバイダーでは標準モジュールが実装されていないところがありますので、注意が必要です。
Perlモジュールを使うと、CGI 作者にとっては、さまざまな可能性を得ることができ、高度な機能を実装した CGI を作成することができるようになります。標準モジュール以外は、サービス事業者が意図的に該当モジュールをインストールする必要があります。利用可能な Perl モジュールを公開しているサービス事業者もありますので、もしそのような CGI を利用する場合には、チェックしましょう。
■ sendmail の利用可否
sendmail とは、主に CGI がメールを送信する場合に使うアプリケーションです。メールを送信する手段としてはもっとも多用されているアプリケーションで、ほとんどの CGI 作者は、sendmail に対応した CGI を作成します。しかし、一部のサービスでは、sendmail を使えないところもあります。また、専用のメール送信アプリケーションを提供して、標準の sendmail を使えないようにしているところもあります。もし、メール送信系 CGI をご利用をお考えの場合には、必ず sendmail を使えるサービスを選択して下さい。
| << 戻る | 次へ >> |