上午好,今天真是美好的一天。
登录注册

开发者工具箱

Developer Toolkit

子曰:“工欲善其事,必先利其器。”
利用工具优化自己的学习工作效率,将时间留给更美好的事物。
我的工具箱起源

2020年,我在某保险公司项目上负责网络接入层的开发工作,内容是对接各家银行的接口,收发 XML 报文解析成我们内部系统统一的对象,然后传递给保险核心系统。

业务细节就不说了,在我负责的工作内容大致就是两个方向,一个是接收报文,一个是响应报文。由于各个银行那边不可能随时跟我们联调、并且保险核心系统也不可能随时和我们联调给我们改保单状态, 这就造成我们想要测试的时候非常麻烦,有的保单是今天下单明天才能生效,进行后续的业务测试,我们就需要提前埋单给后面测试,非常不方便。

想要做工具的想法就在此时诞生了。

  • 给银行响应 XML 报文使用的是 FreeMarker 作为引擎,为了能快速、反复测试我们的 FTL 模板文件,我就制作了:FreeMarker(FTL)在线测试工具,并将测试能力开放出来。
  • 接收银行的 XML 报文,我们使用的 XPath 表达式来查询报文中的数据,为了能快速、反复的调试我们的 XPath 表达式,我就制作了:XPath在线测试工具,并将测试能力开放出来。

后续随着时间的推移,逐渐增加工具箱的功能,将我的能力开放分享出去,不会偷懒的程序员不是好工程师。

工具箱闭源与安全

2022年之前,我的工具箱是开源的,2023年我选择了闭源,并不是怕大家模仿或抄袭,天下代码一大抄,我也避免不了去 Google 抄别人的代码,闭源是因为安全考虑,且听我慢慢道来。

2022年1月,我自己发现我的:FreeMarker(FTL)在线测试工具, 存在远程代码执行漏洞,可以通过传递 freemarker.template.utility.Execute 执行任意代码,这个是致命级别的漏洞,这相当于在服务器上开了一个后门,并且敞开大门随便进,还好程序运行在 Docker 中, 并未造成更大的主机损失。

2022年7月,我自己发现我的:域名解析Dig查询工具, 通过DNS查询时,如果域名的 NS 记录是攻击者自己的服务器地址,可以暴露服务器的真实源 IP 地址,源地址泄露,这就可以造成攻击者绕开我的 WAF 防火墙直接攻击我的服务器。

为了安全考虑,我决定闭源,并调整架构,危险命令交给第二台主机去执行,在第二台主机上的服务不再用原有 Java 代码,改用 Golang 去构建服务,提升效率。

各位极客、安全专家、安全领域爱好者,我不是安全领域的工作者只是普通开发,如果发现漏洞,还请手下留情,请联系我,我会在网站页面上公开感谢。

新需求与创意

如果你有更好的创意、需求、想法,可以向我提出,如果确实非常好,我将对工具箱不断的进行扩充和新增。