Apache Dubbo是一款应用广泛的Java RPC分布式服务框架。Apache Dubbo于2020年6月23日披露在Dubbo Provider中存在一个反序列化远程代码执行漏洞(CVE-2020-1948),官方发布2.7.7版本修复漏洞,但近日该漏洞补丁被绕过,经阿里云工程师测试绕过有效,且目前官方还未发布新版本,漏洞属0day级,风险极大。阿里云应急响应中心提醒Apache Dubbo用户尽快采取安全措施阻止漏洞攻击。
2020年6月29日,阿里云应急响应中心监测到Apache Dubbo GitHub官方发布Pull requests修复了CVE-2020-1948漏洞补丁被绕过现象,Dubbo <=2.7.7版本仍存在反序列化漏洞。目前官方还未发布新版本,漏洞属0day级,风险极大。
Apache Dubbo <=2.7.7
暂无安全版本
服务提供者协议配置。对应的配置类: org.apache.dubbo.config.ProtocolConfig。同时,如果需要支持多协议,可以声明多个 <dubbo:protocol > 标签,并在 <dubbo:service > 中通过 protocol 属性指定使用的协议。 假如我们改为json 可以使用将配置改为以下参数: xml配置可以使用:<dubbo:protocol serialization=“fastjson” /> springboot配置可以使用: dubbo.protocol.serialization=fastjson 更多参数说明见下表:
属性对应URL参数类型是否必填缺省值作用描述兼容性idstring可选dubbo配置关联协议BeanId,可以在<dubbo:service protocol="">中引用此ID,如果ID不填,缺省和name属性值一样,重复则在name后加序号。2.0.5以上版本namestring必填dubbo性能调优协议名称2.0.5以上版本portint可选dubbo协议缺省端口为20880,rmi协议缺省端口为1099,http和hessian协议缺省端口为80;如果没有配置port,则自动采用默认端口,如果配置为**-1**,则会分配一个没有被占用的端口。Dubbo 2.4.0+,分配的端口在协议缺省端口的基础上增长,确保端口段可控。服务发现服务端口2.0.5以上版本hoststring可选自动查找本机IP服务发现-服务主机名,多网卡选择或指定VIP及域名时使用,为空则自动查找本机IP,-建议不要配置,让Dubbo自动获取本机IP2.0.5以上版本threadpoolthreadpoolstring可选fixed性能调优线程池类型,可选:fixed/cached2.0.5以上版本threadsthreadsint可选200性能调优服务线程池大小(固定大小)2.0.5以上版本iothreadsthreadsint可选cpu个数+1性能调优io线程池大小(固定大小)2.0.5以上版本acceptsacceptsint可选0性能调优服务提供方最大可接受连接数2.0.5以上版本payloadpayloadint可选8388608(=8M)性能调优请求及响应数据包大小限制,单位:字节2.0.5以上版本codeccodecstring可选dubbo性能调优协议编码方式2.0.5以上版本serializationserializationstring可选dubbo协议缺省为hessian2,rmi协议缺省为java,http协议缺省为json性能调优协议序列化方式,当协议支持多种序列化方式时使用,比如:dubbo协议的dubbo,hessian2,java,compactedjava,以及http协议的json等2.0.5以上版本accesslogaccesslogstring/boolean可选服务治理设为true,将向logger中输出访问日志,也可填写访问日志文件路径,直接把访问日志输出到指定文件2.0.5以上版本path string可选服务发现提供者上下文路径,为服务path的前缀2.0.5以上版本transportertransporterstring可选dubbo协议缺省为netty性能调优协议的服务端和客户端实现类型,比如:dubbo协议的mina,netty等,可以分拆为server和client配置2.0.5以上版本serverserverstring可选dubbo协议缺省为netty,http协议缺省为servlet性能调优协议的服务器端实现类型,比如:dubbo协议的mina,netty等,http协议的jetty,servlet等2.0.5以上版本clientclientstring可选dubbo协议缺省为netty性能调优协议的客户端实现类型,比如:dubbo协议的mina,netty等2.0.5以上版本dispatcherdispatcherstring可选dubbo协议缺省为all性能调优协议的消息派发方式,用于指定线程模型,比如:dubbo协议的all, direct, message, execution, connection等2.1.0以上版本queuesqueuesint可选0性能调优线程池队列大小,当线程池满时,排队等待执行的队列大小,建议不要设置,当线程池满时应立即失败,重试其它服务提供机器,而不是排队,除非有特殊需求。2.0.5以上版本charsetcharsetstring可选UTF-8性能调优序列化编码2.0.5以上版本bufferbufferint可选8192性能调优网络读写缓冲区大小2.0.5以上版本heartbeatheartbeatint可选0性能调优心跳间隔,对于长连接,当物理层断开时,比如拔网线,TCP的FIN消息来不及发送,对方收不到断开事件,此时需要心跳来帮助检查连接是否已断开2.0.10以上版本telnettelnetstring可选服务治理所支持的telnet命令,多个命令用逗号分隔2.0.5以上版本registerregisterboolean可选true服务治理该协议的服务是否注册到注册中心2.0.8以上版本contextpathcontextpathString可选缺省为空串服务治理 52it.club 认证博客专家 数据分析 项目经理 产品经理 1、【极客精神】具有较强行业敏锐度,喜欢追逐前沿技术(docker、k8s、elasticsearch、Nginx、mongodb、spring boot/spring cloud等开源软件)、并关注前沿技术在业务中的价值;时刻清理自我,过去的经历不再重要,面对未来,我始终保持一颗学习的心态; 2、【团队管理】擅长团队组建与扩充、产品(尤其是软件产品)研发管理体系的建立与完善;极强的适应能力、组织能力、接受能力和应变能力,友善处理人际关系;曾带领研发团队(UI、前端、后端、测试、产品)高效完成电商、新媒体、物联网产品等产品3、【项目丰富】开发过多种类型的产品,其中包括电商、股票理财、资讯等