关于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. Dcoker docker: Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE).

    https://stackoverflow.com/questions/46533482/error-starting-userland-proxy-bind-for-0-0-0-080-unexpe ...

  2. 数字麦克风PDM信号采集与STM32 I2S接口应用(四)--单片机源码

    本文是数字麦克风笔记文章的单片机程序.一些朋友私信我,调试出问题. 我就把源码贴出来吧,可能主要问题是DMA的配置. 尤其双DMA时候,需要手动启动I2S的接收DMA,HAL库没有这个接口,不看dat ...

  3. springboot(九)文件上传

    在企业级项目开发过程中,上传文件是最常用到的功能.SpringBoot集成了SpringMVC,当然上传文件的方式跟SpringMVC没有什么出入.下面我们来创建一个SpringBoot项目完成单个. ...

  4. ORACLE_19c用户密码登录失败的问题以及ORA-28040

    测试环境19c 本地登录无异常,创建测试用户,电脑Plsql登录提示报错ORA-28040,处理后再次登录提示密码错误,最后重置密码再次登录OK? 通过这个问题再次测试及反思: 1.ORA-28040 ...

  5. Java方法(函数)

    4.1方法简介 方法是语句的集合,他们在一起执行一个功能: 1.方法是解决一类问题的步骤的有序组合(功能块) 2.方法包含于类与对象中 3.方法在程序中创建,在其它地方引用 4.原子性:单一职能原则( ...

  6. 记一次css字体反爬

    前段时间在看css反爬的时候,发现很多网站都做了css反爬,比如,设置字体反爬的(58同城租房版块,实习僧招聘https://www.shixiseng.com/等)设置雪碧图反爬的(自如租房http ...

  7. front-end——HTML5/CSS3基础

    概述 1.什么是前端 前端即网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页,随着互联网技术的发展,html5,css3,前端框架的应用,跨平台响应式网页设计能够适应各种屏幕分辨率,完 ...

  8. python学习笔记1 -- 面向对象编程类和实例

    由于之前有一定基础,所以python中的类的概接受的比较快,与其他语言一样, python也是通过类来进行事务的抽象,一切皆对象,要不然怎么说程序员不缺对象呢. 言归正传,python中类的声明是cl ...

  9. c++ string类型举例(递归预习的边界)

    #include <iostream> #include <string> using namespace std; int main ( ) { string str; // ...

  10. python基础day3_str基础函数操作方法及for循环

    字符串操作 s = 'uiehSdc hdsj$jfdks@' s1 = s.capitalize() #仅仅只首字母大写 print(s1) # 结果Uiehsdc s2 = s.upper() # ...