17章 セキュリティ
17.1 プログラミングを行う際のセキュリティ
・データベース
WEBサーバの公開ディレクトリにデータベースファイルを置くと、URLを直接入力すれば、簡単にファイルが開けてしまうので、公開ディレクトリにはデータベースファイルは置かないようにする。できれば別マシンにデータベースを置くのが望ましい。
・パスワードの管理
会員のパスワードには特に注意が必要。ユーザによっては、全てのWEBサイトで同じパスワードを設定しているユーザもいるので、万一、一つのサイトからパスワードが盗まれてしまった場合、重要なサイトにログインされてしまう場合もある。
通常、パスワードはファイルに保存するにしても、データベースに保存するにしても、一方向の暗号化を行って保存しておく。
・クッキー
ログインした会員のセッションを維持するために、クッキーが使用されるが、なりすましを防ぐために、暗号化することが必要。
17.2 通信の際のセキュリティ
・SSL通信
インターネット経由で、重要なデータをユーザが送信する場合は、SSL通信により暗号化した方がよい。
・SSH通信
TelnetやFTPで接続する際に、重要なデータを送受信する場合は、SSH通信により暗号化した方がよい。
17.3 ネットワークのセキュリティ
・ファイアーウォール
WEBサーバが置いてあるマシンには、必ず第三者からの侵入を防ぐために、ファイアーウォールを設置する。別マシンでなくても、WEBサーバマシンにファイアーウォールアプリケーションを入れて防ぐ場合もある。
・ウィルスのチェック
何らかの形でウィルスが入り込まないよう、常にウィルスチェックを行う状態にしておくのが望ましい。
・アクセス制限
各マシンにアクセス制限をかけ、関係のないマシンからのアクセスを防ぐようにする。プログラムレベルでアクセス制限を行うことも可能。
17.4 メンテナンス
・ログのチェック
WEBサーバのログをチェックし、不正なアクセスや、エラーがないかどうかを定期的にチェックすることが望ましい。
|