我目前正在调查设计使用drools决策表电子表格格式(link to jboss drools documentation)的业务解决方案。业务用户将拥有并维护电子表格中的规则。
使用决策表格式的一个主要好处是可以在将来轻松修改规则以适应不同的规则结构。
Drools将基于电子表格的规则数据编译为本机规则格式。可以看到编译器的示例实现here。
我将从安全团队获得的一个问题是,规则电子表格数据是用户输入,并且应验证所有用户输入的正确性,以确保其不包含恶意数据(see here for the rationale for input validation)。
问题:
答案 0 :(得分:2)
由于规则可以包含java代码,因此安全风险实际上大于恶意数据。用户可以轻松插入他选择的Java代码来访问您的系统。
您可以使用drools验证程序并编写自己的规则,但不可能消除所有风险。
使用第三方验证规则可能有效,但进行验证的人员需要成为程序员才能正确评估风险,这将抵消首先使用电子表格的优势。
在我看来,电子表格被高估了:
我建议,一旦您的项目变得稳定,就会抛弃电子表格并为决策表实现自己的用户界面,或者如果您使用guvnor,请将guvnor嵌入到您的Web应用程序中。