-
使用Golang開發OpenStack服務的CLI
由于我們需要編寫自己服務的客戶端,之前參考過magnum的python客戶端,編寫過一個,整體感受就是: 一件簡單的事兒,被他封裝的很復雜,而且還有一個關鍵痛點,部署問題:?1.依賴python環境 2. 蹩腳的二進制打包方式。因此,作為一個產品的CLI,以二進制方式交付會帶來諸多方便,比如cloud foundry也用golang重寫了他的客戶端部分。 Cobra簡介 在博客的開篇寫過一篇cobra的博客:?如何使用golang編寫漂亮的命令行工具, 很多流行的CLI都基于這個庫開發,比如ku…
-
找到惡意軟件包:Go 語言生態系統中的供應鏈攻擊是怎樣的?
近期發生的嚴重的 SolarWinds 攻擊事件和新型 “依賴混淆“攻擊,讓供應鏈攻擊成為討論焦點:攻陷供應鏈中不太安全的元素,導致更安全的目標遭攻陷。 供應鏈攻擊的流行目標一直都是流行編程語言的很多包管理系統,如 NPM (JavaScript)、Rubygems (Ruby) 以及 PyPI (Python)。這些系統常年來遭受惡意攻擊,攻擊者上傳惡意包并等待受害者安裝。 目前為止,尚未看到關于 Go 生態系統的供應鏈攻擊情況。鑒于 Go 語言是我的新寵,我決定自己做一些調查。 好在依賴混淆…
-
Go 中如何準確地判斷和識別各種網絡錯誤
Go語言集成了簡單易用的網路庫,今天的推送是一線架構師分享的Go網絡庫使用入門指南。 Go 自帶的網絡標準庫可能讓很多第一次使用它的人感慨,這個庫讓網絡編程的門檻低到了令人發指的地步。然而,封裝層次與開發人員的可控性往往是矛盾的。Go 的網絡庫封裝程度算是一個不錯的折衷,絕大部分時候,我們只需要調用 Dial, Read, Write Close 幾個基本操作就可以了。 但是,網絡是復雜的。我們有時候需要細致的處理網絡中的各種錯誤,根據不同的錯誤進行不同的處理。比如我們遇到一個網絡錯誤時,需要區…
-
使用 Go 實現 TLS socket server
安全傳輸層協議 TLS,以前稱為 SSL(Secure Sockets Layer) ,由于HTTPS的推出受到了很多人的歡迎。但是正如TLS的名稱 Transport Layer Security 所示的那樣,它實際上是獨立于 HTTP,一個更深入的安全協議,我們可以將 TLS 視為 TCP 的安全版本,其提供了對 socket 通信進行加密和簽名的功能。在我們的日常開發中,會將 gRPC 協議運行在TLS之上以確保安全。 今天我們來了解一下如何創建一個通過 TLS 加密的 socket 服務…
-
學習Go語言哪個培訓機構好一些?
伴隨著因特網的快速發展,IT行業對技術人員的需求也在快速增長。公司對人才的需求日益增長,催生了一大批想要學習go,進入IT行業的人。而且選修課程成了人們最頭疼的事?,F在go培訓課程琳瑯滿目,層出不窮,宣傳也很吸引人,讓每個人眼花繚亂,很多同學都不知道怎么選擇。 一家好的培訓機構需要看下面這幾點: 一、課程教師是否專業,是否有長期的項目實戰經驗,不是一味降低開發成本,以低價聘請新手教師,完全不顧課程質量。 二、課程內容是否全面,安排是否得當,一味的為了就業而學習,只想快…