您现在的位置是:首页 > 文章详情

Beetl 模板引擎 3.17,10 年来第一次不兼容发版

日期:2024-08-12点击:308

Beetl作为后台模板引擎,2011年开始,每次修改都调会考虑到兼容性。本次调整是近10年以来第一次不兼容性调整

  • 安全漏洞CVE-2024-22533 修复,Beetl默认将不再支持Java直接调用.
  • Beetl的安全管理器设置为白名单方式WhiteListNativeSecurityManager,代替DefaultNativeSecurityManager
 NATIVE_CALL = FALSE NATIVE_SECUARTY_MANAGER= org.beetl.core.WhiteListNativeSecurityManager

不兼容回顾:Beetl作为模板语言,支持Java方法和属性的直接调用,并通过安全调用管理器限制一些不安全调用

 var array= @java.util.Arrays.asList(1,2,3);//允许 @java.lang.System.exit(1) ; //默认不允许 var list = @myDao.query("select * from xxx") //通过配置不允许 

安全管理器用于限制程序员编写”不安全“的代码,包括如上`System.exit`,或者团队禁止直接调用业务方法。使用Beetl作为后台模板语言并不会导致安全漏洞,但如果把模板的编写能力开放给最终用户,即用户可以通过浏览器提交模板内容,那么有可能被黑客攻击,这种攻击类似Fastjson或者Jackson,Struts那样的反序列化漏洞。尽管这是在特定场合出现,但现在一些软件管理系统只要看到开源软件有CVE,公司就禁止使用。 Beetl出现的CVE有如下

  1. 安全漏洞CVE-2024-22533
  2. 安全漏洞CVE-2023-30331
  3. 安全漏洞CVE-2024-22262

如果把编写编译Java代码的能力开放给任意用户,Java语言也有安全漏洞

Maven

 <dependency> <groupId>com.ibeetl</groupId> <artifactId>beetl</artifactId> <version>3.17.0.RELEASE</version> </dependency>  

最新模板性能测试,各个模板引擎均采用最新版本, Score 越大越好

Beetl=Enjoy>Rocker>>Freemarker>>Thymeleaf==Velociy

 Benchmark              Mode  Cnt       Score       Error  Units Beetl.benchmark       thrpt    5  109547.863 ± 17161.576  ops/s BeetlByte.benchmark   thrpt    5  237799.769 ±  5904.514  ops/s Enjoy.benchmark       thrpt    5   99695.440 ± 14083.595  ops/s EnjoyByte.benchmark   thrpt    5  223874.001 ±  7265.307  ops/s Freemarker.benchmark  thrpt    5   41452.634 ± 15917.119  ops/s Handlebars.benchmark  thrpt    5   40360.198 ± 24345.048  ops/s Rocker.benchmark      thrpt    5   63657.017 ±  4653.265  ops/s Thymeleaf.benchmark   thrpt    5    6457.169 ±   272.613  ops/s Velocity.benchmark    thrpt    5    8024.042 ±  2097.396  ops/s 

最新规则引擎性能测试,Score 越大越好

JfireEL>> Aviator=Beetl=Jexl3 >>Spel>>Mvel=Groovy>>Nashor

 Benchmark Mode Cnt Score Error Units Aviator.forExpresss thrpt 5 501413.321 ± 4657.336 ops/s Aviator.ifExpresss thrpt 5 4699456.542 ± 266831.101 ops/s Aviator.simpleExpress thrpt 5 3868701.018 ± 38439.986 ops/s Beetl.forExpresss thrpt 5 1685875.017 ± 28454.020 ops/s Beetl.ifExpresss thrpt 5 4461489.443 ± 78687.317 ops/s Beetl.reflect thrpt 5 62972.088 ± 85785.390 ops/s Beetl.simpleExpress thrpt 5 4328852.130 ± 144586.699 ops/s Groovy.ifExpresss thrpt 5 119493.364 ± 1472.301 ops/s Groovy.simpleExpress thrpt 5 121724.720 ± 1533.726 ops/s Jexl3.forExpresss thrpt 5 789815.632 ± 42390.393 ops/s Jexl3.ifExpresss thrpt 5 4500714.752 ± 138214.400 ops/s Jexl3.simpleExpress thrpt 5 3901843.173 ± 125472.114 ops/s JfireEL.ifExpresss thrpt 5 28337464.920 ± 291859.385 ops/s JfireEL.simpleExpress thrpt 5 18824292.084 ± 103241.504 ops/s Mvel.forExpresss thrpt 5 11954.857 ± 84.105 ops/s Mvel.ifExpresss thrpt 5 230373.242 ± 1827.288 ops/s Mvel.simpleExpress thrpt 5 316083.646 ± 1320.717 ops/s Nashorn.ifExpresss thrpt 5 10010.541 ± 752.057 ops/s Nashorn.simpleExpress thrpt 5 8993.022 ± 518.940 ops/s Spel.ifExpresss thrpt 5 850338.540 ± 41826.542 ops/s Spel.simpleExpress thrpt 5 636251.839 ±  
原文链接:https://www.oschina.net/news/306548/beetlsql-3-17-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章