私は現在、drools デシジョン テーブル スプレッドシート形式を使用するビジネス ソリューションの設計を調査しています ( jboss drools ドキュメントへのリンク)。ビジネス ユーザーは、スプレッドシート内のルールを所有して維持します。
デシジョン テーブル形式を使用する主な利点の 1 つは、後でルールを簡単に変更して、さまざまなルール構造に対応できることです。
Drools は、スプレッドシート ベースのルール データをネイティブ ルール形式にコンパイルします。コンパイラの実装例は、ここで見ることができます。
セキュリティ チームからの懸念の 1 つは、ルール スプレッドシート データはユーザー入力であり、悪意のあるデータが含まれていないことを確認するために、すべてのユーザー入力が正しいことを検証する必要があるということです (入力検証の理論的根拠については、こちらを参照してください)。
質問:
- ビジネス ユーザーが悪意のあるデータをルール スプレッドシートに追加するセキュリティ リスクはありますか?
- リスクの大きさ/深刻度は? たとえば、コンパイラはユーザーが入力したデータを十分に検証しますか?
- リスクはどのように軽減できますか?たとえば、ルールを本番環境にデプロイする前に、別の関係者がスプレッドシートでルールを視覚的に検証します。