Webアプリケーション連携機能をインターネット環境に接続されたネットワーク環境で利用する場合、不正なアクセスによるシステムおよび資源の改ざんや破壊、情報の漏えいなどの危険があります。このため、システムの構築にあたっては、Webサーバのユーザ認証機能と暗号化通信機能を使用し、さらに、アプリケーションでユーザ制限を行うなど、自己防衛手段を講じる必要があります。
このように、セキュリティは作成されたアプリケーションおよびその運用環境全体の適切な設定と使用方法によって確保される必要があります。
●資源の保護
プログラム、データに関する資源(データベース、データファイルなど)およびプログラムの動作に必要な各種の定義・情報ファイルは、オペレーティングシステムの機能、Webサーバの認証機構、またはプログラムによるアクセス制限を行い、不正なアクセスや改ざんから保護してください。特に重要な資源は、ファイアウォールを配置したイントラネット環境内に保持してください。
Webサーバを直接公開しないでください。プロキシのリバース機能を使用してWebサーバの資源をアクセスできるようにしてください。
●アプリケーション作成のための指針
事前確認と処理結果の通知
対話・応答を行う処理の場合、重要なデータへのアクセスや処理については、事前の確認および処理結果を通知して、誤った処理を検知できる設計を行ってください。また、ログを記録すると処理の解析に役立ちます。
匿名性
ユーザの実名、実物などの個人情報を識別できるデータについては、特に漏えいの危険性を考慮してください。
インタフェースの検査
外部インタフェースについては、バッファオーバフロー(バッファオーバラン)やクロスサイトスクリプティングなどを考慮して、セキュリティホールの作り込みを防止してください。バッファオーバフローを防止するためには、外部インタフェースの入力データの長さ、型や属性などの検査が有効です。クロスサイトスクリプティングは動的に生成されたページ中に意図しないタグが含まれないようにすることで防止できます。例えば、出力時にメタキャラクタをエスケープする方法があります。
繰り返し実行
同じ接続先からの一定時間内でのリクエスト数を制限するなどの考慮をしてください。
監査ログの記録
Webサーバ、プロキシサーバやオペレーティングシステムの監査ログ機能、およびアプリケーションによるログ出力処理の作成などにより、セキュリティに関するイベントを記録して、セキュリティ侵害が発生した場合の分析や追跡方法を考慮してください。
セキュリティのためのルールの制定
セキュリティに関する脆弱な処理がない堅牢なアプリケーションを作成するためには、セキュリティ侵害の脅威から保護すべき重要な資源を特定し、資源のアクセスやインタフェース設計のために特定のルールを制定することが有効です。
通信データを暗号化して、インターネット上での接続を保護してください。通信データを暗号化するためには、SSLを利用してWebサーバとWebブラウザの間のHTTPメッセージを暗号化する方法があります。
SSLの詳細については、以下を参照してください。
●仮想パスについて
システム運用時に、Webアプリケーション連携機能を使用する場合は、仮想パス(/ListCREATOR)を、プロキシサーバから公開しないでください。