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

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

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

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条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章