Webサーバが表示するHTMLや、ブラウザから入力したフォームのデータは、暗号化されずに送信されます。 このデータを暗号化するためには、SSLを利用します。
Webサーバのファイルは、表示はできないが実行可能なCGIデータと、実行はできないが表示可能なHTMLデータに分けて管理します。また、各ユーザ毎のCGIやHTMLも、このディレクトリのサブディレクトリとします。これにより、実行プログラムを更新できる人を限定することができます。
CGIデータ: /usr/local/etc/httpd/cgi 各ユーザのCGIデータ: /usr/local/etc/httpd/cgi/user HTMLデータ: /usr/local/etc/httpd/html 各ユーザのHTMLデータ: /usr/local/etc/httpd/html/user
各ユーザのホームディレクトリからは、以下のパスでアクセスできます。
~user/cgi-bin -> /usr/local/etc/httpd/cgi/user へシンボリックリンク ~user/public_html -> /usr/local/etc/httpd/html/user へシンボリックリンク
ホームページへのアクセスは、以下のURLとなります。
すべてのユーザは、~ありでもなしでもアクセスできるようになります。
http://www.ash.jp/user/ http://www.ash.jp/~user/
CGIを利用する場合は、以下のURLとなります。
http://www.ash.jp/cgi/user/???.cgi
CGIデータ、HTMLデータの実体は、1つのディレクトリ配下にまとめることにより、シンボリックリンクを使用しないようにします。
SSIは、*.shtmlでしか動作しないようにし、EXEC機能は禁止します。
.htaccessファイルで、CGIやSSIの実行権を変更できなくします。
HTMLデータデータやCGIデータは、自動バックアップを行います。
15分毎: rsyncプログラムによる自動バックアップ
1週間毎: tarコマンドで、自動バックアップ
rsyncプログラムは、差分のバックアップを行い、tarコマンドは、全データのバックアップを行います。
rsync時には、シンボリックリンクしたファイルは、コピーされません。
プロキシサーバを利用すると、アドレスがすべて、プロキシサーバのアドレスとなってしまい、実際のIPアドレスやホスト名はわからなくなってしまいます。
プロキシサーバでは、AUTHパラメータの設定などで、FromのIPアドレスをHTTP_FORWARDEDや、HTTP_X_FORWARDED_FORなどの環境変数に設定することができます。この環境変数の値には、いろいろなパターンがあるため、共通関数を作成します。
CGIを汎用的に作成してあれば問題はありませんが、そうでない場合には、第3者が勝手にCGIを実行できないようにチェックする必要があります。
変数に値を設定する場合などは、そのまま値を代入してはいけません。
代入するデータに"data.`rm -rf *`"などと記述されていると、ファイルが削除されてしまう可能性があります。