2

我目前正在研究设计一个使用 drools 决策表电子表格格式的业务解决方案(链接到 jboss drools 文档)。业务用户将拥有并维护电子表格中的规则。

使用决策表格式的一个主要好处是将来可以轻松修改规则以适应不同的规则结构。

Drools 将基于电子表格的规则数据编译为原生规则格式。可以在此处查看编译器的示例实现。

我的安全团队担心的一个问题是,规则电子表格数据是用户输入,所有用户输入都应该经过正确性验证,以确保它不包含恶意数据(有关输入验证的基本原理,请参见此处)。

问题:

  1. 是否存在业务用户可以将恶意数据添加到规则电子表格的安全风险?
  2. 风险有多大/严重?例如,编译器是否充分验证了用户输入的数据?
  3. 如何降低风险?例如,另一方在将规则部署到生产环境之前直观地验证电子表格中的规则。
4

1 回答 1

2

由于规则可以包含java代码,安全风险实际上比恶意数据更大。用户可以轻松插入他选择的 java 代码来访问您的系统。

您可以使用 drools 验证程序并编写自己的规则,但不可能消除所有风险。

使用第三方来验证规则可能会奏效,但进行验证的人需要是程序员才能正确评估风险,这首先会抵消使用电子表格的优势。

在我看来,电子表格被高估了:

  • 您提到的存在固有的安全风险
  • 非技术人员很容易修改规则操作部分并拥有损坏的 XLS 文件
  • 定义和使用查找表很痛苦。

我建议,一旦你的项目变得稳定,放弃电子表格并为决策表实现你自己的用户界面,或者如果你使用一个,将 guvnor 嵌入到你的 Web 应用程序中。

于 2013-01-15T11:59:59.853 回答