开源规则引擎比较_重大新闻 | 陌陌风控系统开源啦

82703208dc88b08c1c04cd913350cf1c.png

沃·兹基硕德小贴士

开源一时爽

一直开源一直爽

404263cfdf1132d3977a4a2479a8a6dd.png

陌陌风控系统静态规则引擎,零基础简易便捷的配置多种复杂规则,实时高效管控用户异常行为。

7fc18c45841daaecb71b3a371c5c940e.png

【名词解释】策略原子:基于用户行为数据进行异常判断的基础元素,如设备黑名单、手机号黑名单等管控原子:用户命中策略原子后对应的管控措施,如短信验证码、滑动验证码等;规则:基于不同业务点建立的规则ID,由多条策略原子+管控原子构成;错误提示码:用于前端规则命中后的提示,便于运营人员排查问题,解决问题。【方案设计简介】规则配置:用于不同业务点的规则配置;策略配置:用于设置策略原子及策略原子;数据源配置:基于业务数据而设置的数据来源key,用于风控策略的运算;数据统计:用户命中规则的数据统计与展示;【使用说明】当一个业务需要接入风控系统进行管控时,通过以下步骤进行配置1. 建立该业务数据源,业务方需要向此数据源推送业务相关数据;2. 建立该业务所需要的策略原子,部分策略原子需要依赖该业务数据源;3. 新建规则配置,设置策略名称、权重、策略原子组、管控原子、提示语,完成规则配置;4. 业务方调用此配置,进行业务风控;【注意事项】本次开源版仅包含陌陌业务安全风控系统静态规则引擎中的部分功能,后续根据实际情况逐步扩展功能。

【地址】

GitHub地址:https://github.com/momosecurity/aswan

或者点击阅读全文即可查看。

这次我们的惊喜玩儿个大的,截止6月20日 17:00,评论里面点赞前三名赠送MMSRC 7月初直播抽奖白帽子名额一份儿,问我抽奖礼品是什么?上次三星T5 1TB移动硬盘、ikbc键盘等等等等应有尽有,这期奖品依旧很给力!

玩法儿吗?玩法儿和上次一样,可参考:周年庆 | 活动还可以这么玩儿?

陌陌安全在后续依旧会带来精彩内容分享9d2eab8b7dd9b0ab92fc1af9a35ab41f.png

MMSRC

陌陌安全应急响应中心(MMSRC,MOMO Security Response Center)是陌陌安全建立的安全漏洞收集及安全应急响应平台,致力于保障陌陌旗下所有产品及用户信息安全,促进陌陌与白帽子及团队的交流合作。

为感谢白帽子及团队为亿万陌陌用户信息安全做出的贡献,陌陌安全应急响应中心特别设立年度百万奖金池,单漏洞或情报奖励可达万元,活动期间可获取更高奖励。于此同时,我们会不定期组织、赞助安全会议等线下活动,为广大白帽子创造线下交流沟通机会。

2af6c808b4639e35996f2d0e26d6bbca.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
常用的Java开源规则引擎有Drools、EasyRules、RuleBook和jBPM等。下面对它们进行简单的对比及演示: 1. Drools Drools是一款功能强大的Java规则引擎,拥有完整的规则引擎功能和规则管理功能。Drools支持多种规则格式,如DRL、Decision Table和Spreadsheet等,并且提供了多种规则匹配方式,如Rete和Phreak等。Drools还支持规则流程,能够将多个规则组合成一个规则流程。 下面是一个使用Drools的简单规则示例: ``` rule "Discount for VIP customers" when $customer : Customer(category == Category.VIP) $order : Order(customer == $customer, total > 1000) then $order.setDiscount(0.1); update($order); end ``` 2. EasyRules EasyRules是一款轻量级的Java规则引擎,它的设计理念是简单易用。EasyRules支持多种规则格式,如MVEL、Groovy和JavaScript等。EasyRules提供了基于注解的规则定义方式,可以通过注解来定义规则名、优先级、条件和动作等。 下面是一个使用EasyRules的简单规则示例: ``` @Rule(name = "Discount for VIP customers", priority = 1) public class DiscountRule { @Condition public boolean isVIP(@Fact("customer") Customer customer) { return customer.getCategory() == Category.VIP; } @Condition public boolean isHighTotal(@Fact("order") Order order) { return order.getTotal() > 1000; } @Action public void applyDiscount(@Fact("order") Order order) { order.setDiscount(0.1); } } ``` 3. RuleBook RuleBook是一款基于注解的Java规则引擎,它提供了简洁的API和易于理解的规则书写方式。RuleBook支持链式调用,可以非常方便地组合多个规则。 下面是一个使用RuleBook的简单规则示例: ``` RuleBook ruleBook = new RuleBook(); ruleBook.addRule(rule -> rule .name("Discount for VIP customers") .description("If the customer is VIP and the order total is over 1000, apply a 10% discount") .when(facts -> { Customer customer = facts.get("customer"); Order order = facts.get("order"); return customer.getCategory() == Category.VIP && order.getTotal() > 1000; }) .then(facts -> { Order order = facts.get("order"); order.setDiscount(0.1); })); ruleBook.run(facts); ``` 4. jBPM jBPM是一款基于BPMN 2.0标准的Java规则引擎,它提供了完整的业务流程管理功能和规则引擎功能。jBPM支持多种规则格式,如DRL、Decision Table和Spreadsheet等,并且提供了多种规则匹配方式,如Rete和Phreak等。jBPM还支持规则流程,能够将多个规则组合成一个规则流程。 下面是一个使用jBPM的简单规则示例: ``` KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource("rules.drl"), ResourceType.DRL); KnowledgeBase kbase = kbuilder.newKnowledgeBase(); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); ksession.insert(customer); ksession.insert(order); ksession.fireAllRules(); ``` 以上是对常用Java开源规则引擎的简单对比及演示,希望能对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值