关于Exceptionless日志收集框架会被Fiddler抓包,从而获取到ApiKey的问题

关于Exceptionless日志收集框架会被Fiddler抓包,从而获取到ApiKey的问题

环境Exceptionless5.0.0、Linux、WPF客户端、Fiddler

问题在使用Exceptionless 对 WPF客户端进行日志记录的时候。客户端在日志传送的过程中会被Fiddler抓包 并且获取到Exceptionless的ApiKey。

首先上几张图来更明显的描述问题。

第一张图是我WPF客户端采用的日志上传方式,即使用他封装好的方式CreateLog。

第二张图是我WPF客户端日志上传的过程中,开启了Fiddler。从图中很明显的看到这条上传信息被Fiddler抓取到了。

 第三张图很明显的显示出了Fiddler抓取到的信息里包含有了我WPF客户端项目的Apikey。

第四张图是我通过Fiddler拿到的ApiKey,通过使用Postman进行模拟日志的上传。

第五张图很明显看到了我使用Postman上传的日志被传送到了Exceptionless服务器里面了。

首先通过这大家已经可以很明确的看出自己搭建的Exceptionless是存在一定的漏洞的。那么如何去解决他呢?

解决思路:我在这里提供目前而言两个解决思路(当然两个思路都是不采用他封装好的方法去提交,本人试过封装好的方法里没办法处理这个。Exceptionless的作者也是这样说的,Exceptionless作者说后面可能会考虑在用户界面删除ApiKey防止这个现象)。

(1)让后端开发一个日志接口,通过接口对Exceptionless服务器进行日志上传,然后接口对发送者进行身份的甄别验证。

(2)采用Https的方式进行上传,这就得借鉴我上一篇的内容 《WPF桌面程序在请求接口时如何防止被常用的抓包软件Fiddler抓包》

当然这两种方案都是比较麻烦就是得自己去手动获取并赋值数据。Exceptionless日志里每条日志都有一些环境数据,例如计算机名、处理器核数、总内存、可用内存、已用内存等等。当然大家可能觉得这些数据比较无关紧要,但值得一说的是,有时候客户电脑的环境会影响到你的程序运行的结果,所以这些数据能拿的尽量就去做出来。

最后补充下:当我遇到这个问题的时候曾经有人说我这是闲的没事做、没必要纠结这个问题被抓到Apikey就被抓到、没必要较真、没有完美的程序。在这我只想说程序是没有完美的,或许我们开发出来一个程序后,我们发现了程序存在一定问题,我们忽略了。然后测试肯定对于一些细节是不一定能测试到或想得比较全面的,当这个程序推行到市场的时候。这个问题被发现了该怎么办?这个问题谁来负责?损失谁来承担?就拿我本文章这个问题来说:首先我拿到你日志上传的ApiKey,那是不是意味着我可能整个小工具疯狂的往你Exceptionless服务器上传一些垃圾数据?而且对于Exceptionless的日志据我上次看到的一条日志应该在1kb~2kb。在我对你服务器进行疯狂输送垃圾数据的过程中,你或许会说我修改下Apikey就行了,但你有没有想过那那些已经开始使用的客户怎么办,是不是意味着日志就不能收集到?而且这个问题不解决,下个版本我依旧可以拿到你的ApiKey,是不是这个道理。话就说到这,希望对后面的人有帮助。

转载请标明原文链接

 

posted @ 2020-08-19 16:27  葬爱-小菜鸟  阅读(478)  评论(0编辑  收藏  举报