drools电子表格 - 输入电子表格规则的验证

时间:2013-01-14 22:24:46

标签: security validation drools penetration-testing

我目前正在调查设计使用drools决策表电子表格格式(link to jboss drools documentation)的业务解决方案。业务用户将拥有并维护电子表格中的规则。

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

Drools将基于电子表格的规则数据编译为本机规则格式。可以看到编译器的示例实现here

我将从安全团队获得的一个问题是,规则电子表格数据是用户输入,并且应验证所有用户输入的正确性,以确保其不包含恶意数据(see here for the rationale for input validation)。

问题:

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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

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