用RSA替登入密碼加密

做網頁系統開發一定會遇到帳號登入的問題。

大家都知道密碼要用[HttpPost]放在Request Body裡面來進行傳遞。這句話只對了一半,因為只要在瀏覽器按下F12進入開發者模式,密碼還是會被看光光的,好恐怖的阿。

所以對密碼進行加密是最基本的資安防護。

...繼續閱讀 »

Log套件 - Serilog(on Linux Ubuntu)

寫Web API時最討厭遇到500 (Internal Server Error)這種後端程式錯誤了,只返回一個Error Responese,c#的catch也抓不到錯誤訊息。由於不是本機環境,也沒有辦法下中斷點Debug,所以也不知道該如何除錯,這時候就知道紀錄後端Log的重要性了。

之前使用的原本是ElmahCore,但爬文後,發現Serilog的使用率比較高,相關資料也比較多。

...繼續閱讀 »

目錄遍歷(Path Traversal)攻擊

目錄遍歷(Path Traversal)攻擊是透過相對路徑的方式來跨目錄的方式,藉機取得Server上原本是不公開的檔案。用比喻的方式來說的話,就大概是類似:

你授權請助理小姐去書桌第一格抽屜(目錄)拿開會要用的報告(公開的檔案),但助理小姐知道第二格抽屜(目錄)有500萬現金,雖然你沒授權他可以開,在你也沒有上鎖的情況下,助理小姐就自己打開第二格抽屜(目錄)拿走了500萬(非公開的檔案)。

上面這個範例,大概就是目錄遍歷(Path Traversal)攻擊的方式。

...繼續閱讀 »

SignalR(二):Server to all Client推播 & Client to all Client廣播

SignalR是一個自己蠻有興趣的東西,提供Server與Client端之間的即時通訊,而且使用也不算複雜。

SignalR所提供的功能有:

  • 自動處理連接管理。
  • 同時將訊息傳送給所有已連線的用戶端。 例如,聊天室。
  • 將訊息傳送給特定用戶端或用戶端群組。
  • 調整以處理增加的流量。

這次利用SignalR來做個訊息推播(Server to Client) & 廣播(Client to Client)的簡單範例。

...繼續閱讀 »

SignalR(一):Server to Client推播

Client to Client廣播測試請參考另外一篇文章 => SignalR(二):Server to all Client推播 & Client to all Client廣播

=================

SignalR是一個自己蠻有興趣的東西,提供Server與Client端之間的即時通訊,而且使用也不算複雜。

SignalR所提供的功能有:

  • 自動處理連接管理。
  • 同時將訊息傳送給所有已連線的用戶端。 例如,聊天室。
  • 將訊息傳送給特定用戶端或用戶端群組。
  • 調整以處理增加的流量。

這次利用SignalR來做個訊息推播的簡單範例。

...繼續閱讀 »

.Net Core DI 服務生命週期

Scoped:每次Post/Get Request在Application結束前,都會使用相同的instance

Transient:每次注入都會建立新的instance

Singleton:應用程式從開始到結束,使用的都是同一個instance。(ex:執行應用程式後,會先進入Program,接著執行Post/Get Request,接著再執行一次Post/Get Request。這種情況使用的都是同一個Service實體。第二次Post/Get Request不會再進入Program,不算Application結束)。

...繼續閱讀 »

MSTest偵錯無法執行

今天再寫單元測試的時候遇到了一個奇怪的問題,通常單元測試寫好後,會自己進行跑一次偵錯看看有沒有什麼問題。但今天執行偵錯後,沒有出現任何的錯誤訊息,綠勾勾跟紅叉叉都沒有,單元測試就這樣無聲無息地結束了,讓人百思不得其解,也不知道哪個環節出錯了。

...繼續閱讀 »