7.9.4 データベース使用時のセキュリティについて
データベース使用時のセキュリティについて説明します。
- 〈この項の構成〉
(1) データベースの管理
CSCIWで使用するデータベースは,業務データベースと同様にシステム管理者が管理する必要があります。そのため,ユーザIDやパスワードなどのセキュリティ管理についても業務データベースと同様にシステム管理者が実施する必要があります。
(2) SQLインジェクション
CSCIWではDBMSの機能を使用してワークフロー機能を実現しています。DBの操作性や使用方法についてはJDBCに依存しています。
SQL文の発行時のチェック機構および制限については,使用しているJDBCおよび接続しているデータベースに依存しています。しかし,CSCIWでは,DBMSのように厳密なSQL文の構文チェックをしていません。振り分けルールやデータ条件のSQLについても構文のチェックをしていないため,定義系SQL(DELETEやDROP TABLEなど)を定義した場合も実行されてしまいます。また,API発行時に引き渡されるデータについてもSQL文としての構文チェックをしていないため,一般的なSQLセキュリティの対策は,ワーク管理システムを使用する側で実施してください。
次に示すパラメタについては,CSCIWでSQL発行時に無条件にSQL文を付与しますので,運用の際には注意が必要です。
-
案件名
-
業務ステップ名
-
作業名
-
作業者
-
検索フィルター条件
-
検索ソート条件
-
振り分けルール実行時パラメタ
-
子作業名リスト
-
ビジネスプロセス定義名
-
ビジネスプロセス定義のバージョン
-
業務ステップ定義名
-
作業定義名
-
制御ノード定義名
-
案件投入者
-
案件開始日
-
案件処理期限
-
案件優先度
-
業務ステップ開始日
-
業務ステップ処理期限
-
業務ステップ優先度
-
作業生成日
-
作業開始日
-
作業処理期限
-
作業優先度
-
ユーザID
なお,SQLのセキュリティ問題に関しては,情報処理振興事業協会(IPA)セキュリティセンターで公開している情報を参照してください。