關於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,是不是這個道理。話就說到這,希望對後面的人有幫助。

轉載請標明原文鏈接