关于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,是不是这个道理。话就说到这,希望对后面的人有帮助。

转载请标明原文链接

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

  1. .NET Exceptionless 日志收集框架本地环境搭建

    一.简介 Exceptionless 是一个开源的实时的日志收集框架,它可以应用在基于 ASP.NET,ASP.NET Core,Web Api,Web Forms,WPF,Console,MVC 等 ...

  2. 关于Exceptionless日志收集框架如何关闭磁盘缓存

    问题:在使用Exceptionless的时候,Exception在收集到日志时会默认在appdata里面缓存当条日志的缓存文件,时间久了之后,如果收集到的日志越多磁盘的空间就会不足. 我使用的环境是 ...

  3. 在IIS上搭建Exceptionless日志收集框架

    系统环境要求 .NET 4.6.1,如果已安装过VS请忽略.Java Sdk1.8+,Win10环境下配置Java 环境变量参考,ElasticSearch 5.1,它是一个基于Lunce搜索服务器. ...

  4. ExceptionLess异常日志收集框架-1

    哈哈,中秋和代码更配哦,不知不觉一年过半了,祝园友们中秋快乐 前一阵子在博客园看到了一篇博文 http://www.cnblogs.com/savorboard/p/exceptionless.htm ...

  5. 日志收集框架 Exceptionless

    日志收集框架 Exceptionless 前言 从去年就答应过Eric(Exceptionless的作者之一),在中国会帮助给 Exceptionless 做推广,但是由于各种原因一直没有做这件事情, ...

  6. 在.NET Core中使用Exceptionless分布式日志收集框架

    一.Exceptionless简介 Exceptionless 是一个开源的实时的日志收集框架,它可以应用在基于 ASP.NET,ASP.NET Core,Web Api,Web Forms,WPF, ...

  7. asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程

    最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionl ...

  8. C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志

    C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...

  9. Net Core免费开源分布式异常日志收集框架Exceptionless

    asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 https://www.cnblogs.com/yilezhu/p/9193723.htm ...

随机推荐

  1. NIO入门之多路复用选择器Selector

    简介 Selector 是 java.nio.channels 包下的重要组件,阅读本文可以带你了解常用的 API.本文中把 Channel 翻译成信道,按照个人习惯也可以称作是通道.管道. Sele ...

  2. python爬虫入门(2)----- lxml

    lxml 简介 lxml使用xpath对xml进行解析,XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历. 参考官方文档:https://l ...

  3. Linux系统中(CentOS 7)的用户和权限管理

    目录 用户和组 用户信息文件 用户密码信息 相关命令 用户管理 组管理 密码管理 权限管理 文件的详细信息 文件权限 相关命令 用户和组 用户信息文件 /etc/passwd (1 2 3 4 5 6 ...

  4. methodology of english learning

    classify the vocabulary into different catigories syllabus about person

  5. Go 中读取命令参数的几种方法总结

    前言 对于一名初学者来说,想要尽快熟悉 Go 语言特性,所以以操作式的学习方法为主,比如编写一个简单的数学计算器,读取命令行参数,进行数学运算. 本文讲述使用三种方式讲述 Go 语言如何接受命令行参数 ...

  6. 线程_multiprocessing异步

    from multiprocessing import Pool import time import os def test(): print("---进程池中的进程---pid=%d,p ...

  7. 账本APP服务器端开发

    账本APP开发 好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star,更多文章请前往:目录导航 上一篇文章我们聊 ...

  8. 非常适合小白的 Asyncio 教程

      非常适合小白的 Asyncio 教程 原文:https://segmentfault.com/a/1190000008814676 所谓「异步 IO」,就是你发起一个 IO 操作,却不用等它结束, ...

  9. Junit4 测试代码

    Junit4 测试代码 import org.junit.Test; import org.junit.runner.RunWith; @RunWith(SpringJUnit4ClassRunner ...

  10. python1.3集合知识点:

    #定义集合:{},集合是只有key没有value的字典,集合内元素不能重复!a={1,2,3,4,5,6}#列表转换成集合b=set([1,2,3,4,5])print(a,b) #集合对列表进行去重 ...