Jboot 一个更简单的分布式、微服务框架。
Jboot是一个基于 JFinal、JFinal-Undertow、Dubbo、Seata、Sentinel、ShardingSphere、Nacos 等开发的微服务框架,帮助开发者降低微服务、分布式开发门槛。爽爽开发,快乐生活。
到目前为止,Jboot 已经开源超过了 5 年的时间,迭代了 190+ 个版本,已经被超过 1000+ 公司在使用,其中包含了多个知名的上市公司。
Jboot v3.9.6 主要是新增了对 XSS 的防护机制,只需要添加个配置就能杜绝 XSS 攻击,同时拥有极高的性能和用户体验,同时还新增了门户网关的拦截器、负载均衡策略的动态配置功能。
在 Jboot 中,只需要添加如下配置就可以有效杜绝 XSS 攻击:
jboot.web.escapeParas = true
当用户通过表单传入 script 代码时,比如 http://127.0.0.1/index?name=<script>alert('')</script>。
通过 JFinal 的 getPara('name') (或者 getModel、getBean)得到的值是:<script>alert('')</script>
有效杜绝了 XSS 的情况。
在某些情况下,我们希望获得原始的值,而非转义后的值,那怎么办呢?JbootController 提供了一个方法 getOriginalPara('name') 可以得到原始的值:<script>alert('')</script>。
目前,市面上也有很多 XSS 防护解决方案,都有如下不足的地方:
1、性能低,Jboot 可能是市面上性能最好的 XSS 解决方案。
2、用户体验差,当我们想放出某个表单的时候,需要做很多的配置。在 Jboot 只需要通过 getOriginalPara("name") 就可以获得任意原始值,用户体验极好。
Jboot v3.9.6 更新内容如下:
新增:门户网关动态配置拦截器的功能(之前只能通过配置文件进行配置)
新增:门户网关动态配置负载均衡策略的功能(之前只能通过配置文件进行配置)
新增:columns 新增 groupBy() 和 having() 的方法,方便构建 group by 的 SQL
新增:新增 jboot.web.escapeParas 配置,方便全局对 xss 进行防护
优化:升级 JFinal、HikariCP、metrics、Shiro 等到最新版本
修复:使用 @bean 注解,然后 Jboot.getBean() 通过 Bean Name 获取不到对象的问题
修复:Redis 缓存的 removeAll() 和 getKeys() 在某些情况返回数据不正确的问题
Jboot 开发文档:
https://jbootprojects.gitee.io/docs/
同时,Jboot 官方也推出了收费的企业级开发框架 JbootAdmin ,关于 JbootAdmin 详情咨询海哥。
maven 依赖:
<dependency>
<groupId>io.jboot</groupId>
<artifactId>jboot</artifactId>
<version>3.9.6</version>
</dependency>
Hello World:
@Path("/")
public class HelloworldController extends JbootController {
public void index(){
renderText("hello world");
}
public static void main(String[] args){
JbootApplication.run(args);
}
}