ASH | サーバ | セキュリティ | Linux | FreeBSD | DB | Web | CGI | Perl | Java | XML | プログラム | ネットワーク | 標準 | Tips集

Webサーバのセキュリティについて

データの暗号化

 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のEXEC機能の禁止

 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などの環境変数に設定することができます。この環境変数の値には、いろいろなパターンがあるため、共通関数を作成します。

第3者のアクセスのチェック

 CGIを汎用的に作成してあれば問題はありませんが、そうでない場合には、第3者が勝手にCGIを実行できないようにチェックする必要があります。

入力データのチェック

 変数に値を設定する場合などは、そのまま値を代入してはいけません。
 代入するデータに"data.`rm -rf *`"などと記述されていると、ファイルが削除されてしまう可能性があります。



Copyright (C)1995-2002 ASH multimedia lab.
mail : info@ash.jp