10|服务认证:被异构系统侵入调用了,怎么办?
何辉
你好,我是何辉。今天我们探索 Dubbo 框架的第九道特色风味,服务认证。
通过集成 Java 语言编写的 Dubbo 框架来提供服务,你已经非常熟悉了,作为 Dubbo 多语言生态最火热的项目,用 Go 语言开发的 dubbo-go 框架,想必你也有所耳闻,然而,就是这样一款非常实用且轻量级的优秀框架,却引发了一些产线事件。
事情是这样的,公司最近要做一个关于提升效能的一体化网站,我们的后端服务全是 Dubbo 提供者,但是负责效能开发的同事只会使用 Go 或 Python 来编写代码,于是经过再三考虑,效能同事最后使用 dubbo-go 来过渡对接后端的 Dubbo 服务。就像这样:
然而,dubbo-go 服务上线后不久,某个时刻,支付系统的银行账号查询接口的 QPS 异常突增,引起了相关领导的关注。
一番排查后,我们发现银行账号查询接口的来源 IP 格式比较怪异,找网工帮忙分析了一下,怪异的 IP 是一个异构系统 dubbo-go 服务发出来的请求(至于一体化网站为什么需要查询该接口就是后话了)。
目前暴露了一个比较严重的问题,被异构系统访问的接口缺乏一种认证机制,尤其是安全性比较敏感的业务接口,随随便便就被异构系统通过非正常途径调通了,有不少安全隐患。因此很有必要添加一种服务与服务之间的认证机制。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了Dubbo框架中服务认证的重要性和实现方式。首先介绍了Dubbo框架及其多语言生态项目dubbo-go,并探讨了由异构系统调用引发的问题。具体讨论了在服务与服务之间添加认证机制的必要性,并提出了对数据进行真假鉴定和篡改鉴定两个规则的分析。文章详细介绍了在提供方和消费方分别实现认证过滤器的步骤,以及如何在代码中实现TOKEN认证的具体操作。通过代码实现的验证过程,展示了认证通过和异常流程的效果。总的来说,本文对服务认证的重要性和实现方式进行了深入探讨,对于Dubbo框架的使用者具有一定的参考价值。文章还提到了服务认证的应用场景有三类,系统内应用之间的调用、系统间不同应用的调用、系统内外不同系统的调用。同时,留下了思考题,鼓励读者深入研究Dubbo框架中的TokenFilter、ConsumerSignFilter、ProviderAuthFilter等支撑能力。文章内容涵盖了Dubbo框架中服务认证的重要性、实现方式以及应用场景,对于想深入了解Dubbo框架的读者具有很高的参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Dubbo 源码剖析与实战》,新⼈⾸单¥59
《Dubbo 源码剖析与实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- 廖新森老师你好,请问一下, parameters = { "qps.enable", "true", "qps.value", "3" })}) 如何通过注入的形式填充这些参数呢,qps.value可以从配置中心,或者文件中读取,填充值?
作者回复: 你好,廖新森:如果想通过注入进来的话,那就可要下点功夫了。比如通过 @Value 来注入的话这个就得稍微在过滤器做下解析规则了,识别@Value之后从哪里读取,到底是从环境变量读取呢,还是从配置中心读取呢,还是从项目properties配置文件读取呢,这个方式完全自主控制,方式不限定~
2023-03-03归属地:海南1
收起评论