<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    Go程序配置利器-viper庫

    VSole2022-08-01 10:50:15

    推薦理由

    日常開發中,程序配置項會包含多種源,如:配置文件,系統環境變量、分布式config服務等等,常規方式是每種配置源寫一套邏輯,雖然開發量不大,但總要花精力去維護后續的變更。Viper庫恰好能解決這類痛點,同時還支持多種配置文件格式,以及熱加載能力,所以程序配置管理場景可以嘗試用Viper庫。

    功能介紹

    Viper具體功能特性如下:

    • 設置配置項默認值
    • 支持顯式設置配置項
    • 支持讀取JSON、TOML、YAML、HCL、envfile和Java properties等配置格式
    • 支持讀取環境變量
    • 支持讀取etcd、Consul等分布式配置服務
    • 支持讀取命令行參數
    • 支持讀取內存
    • 配置熱加載

    使用指南 

    Viper使用起來也是比較簡單的,主要的代碼流程大致如下:

    1. 初始化viper,可以使用單個viper實例,也可以多個viper實例
    2. 針對不同的配置源設置相對應的參數,如:配置文件路徑,文件類型,ectd/consul服務器訪問地址和key等
    3. 讀取配置項,可以直接使用viper.GetXXX()方法獲取某個具體配置項,也可以所以或部分配置項反序列化為struct或map

    以讀取配置文件為例,配置文件內容:

    Hacker: true
    name: steve
    hobbies:
    - skateboarding
    - snowboarding
    - go
    clothing:
      jacket: leather
      trousers: denim
    age: 35
    eyes : brown
    beard: true
    

    代碼:

    package main
    import (
        "fmt"
        "log"
        "github.com/spf13/viper"
    )
    func main() {
        viper.SetConfigName("config") // 配置文件名稱
        viper.SetConfigType("yaml") // 文件名無擴展名,需要顯式指定
        viper.AddConfigPath("/etc/appname/")   // 配置文件搜索路徑
        viper.AddConfigPath("$HOME/.appname")  // 多次調用以添加多個
        viper.AddConfigPath(".")               // 也可以設置為工作目錄
        if err := viper.ReadInConfig(); err != nil {
            if _, ok := err.(viper.ConfigFileNotFoundError); ok {
                // Config file not found; ignore error if desired
            } else {
                // Config file was found but another error was produced
            }
            log.Fatal(err)
        }
        fmt.Println("獲取配置文件的Hacker", viper.GetBool("hacker"))
        fmt.Println("獲取配置文件的hobbies", viper.GetStringSlice("hobbies"))
        fmt.Println("獲取配置文件的clothing.jacket", viper.GetString(`clothing.jacket`))
    }
    

    更詳細的使用可以參考Viper官方文檔

    總結 

    日常開發中程序配置管理的絕大部分場景都可以使用Viper,實際使用中也可以對Viper二次封裝,來支持讀取更多平臺的遠程文件。

    最后Viper v2啟動了,也在收集廣大使用者的需求和反饋。傳送門。



    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    推薦理由日常開發中,程序配置項會包含多種源,如:配置文件,系統環境變量、分布式config服務等等,常規方式是每種配置源寫一套邏輯,雖然開發量不大,但總要花精力去維護后續的變更。Viper恰好能解決這類痛點,同時還支持多種配置文件格式,以及熱加載能力,所以程序配置管理場景可以嘗試用Viper
    安服工程師技能手冊詳細總結
    漏洞及滲透練習平臺 數據庫注入練習平臺 花式掃描器 信息搜集工具 WEB工具 windows域滲透工具 漏洞利用及攻擊框架 漏洞POC&EXP 中間人攻擊及釣魚 密碼pj 二進制及代碼分析工具 EXP編寫框架及工具 隱寫相關工具 各類安全資料 各類CTF資源 各類編程資源 Python
    從政府側、供給側、需求側、專業機構等角度出發,聚焦創新和市場雙驅動、供給和需求互促進、治理和發展兩手抓等思路,加大技術研究及應用示范支持力度,分類推進數據安全技術產品的服務創新,強化數據安全防護和數據開發利用,做專做強數據安全檢測評估工作。
    筆者片面的從多年乙方經驗(不涉及監管層面能拿到的數據)的技術層面來討論下大攻防演練多人運動下的溯源反制思路,以及作為反制團隊如何與藍隊其他成員之間進行配合反制相關的工作。 如有寫的不對的地方及遺漏的地方(肯定有的),請多多交流。
    CISA于2021年9月發布了一份報告,描述了此漏洞和其他 DOPSoft漏洞。Atlassian表示,該漏洞的CVSS嚴重性評分為9.9分,可以遠程利用來發起代碼執行攻擊。Atlassian表示,被跟蹤為CVE-2022-36804的安全漏洞是在Bitbucket Server and Data Ce
    本研究的系統分析揭示了一系列漏洞,這些漏洞證明了 EVCSMS 對遠程網絡攻擊的不安全性。考慮到此類攻擊的可行性,還討論了針對 EV 充電站 (EVCS,EV Charging Stations) 及其用戶的攻擊影響。
    0x00 介紹工具介紹RedGuard,是一款C2設施前置流量控制技術的衍生作品,有著更加輕量的設計、高效的流量交互、以及使用go語言開發具有的可靠兼容性。它所解決的核心問題也是在面對日益復雜的紅藍攻防演練行動中,給予攻擊隊更加優秀的C2基礎設施隱匿方案,賦予C2設施的交互流量以流量控制功能,攔截那些“惡意”的分析流量,更好的完成整個攻擊任務。RedGuard是一個C2設施前置流量控制工具,可以避免Blue Team,AVS,EDR,Cyberspace Search Engine的檢查。
    0x00 介紹工具介紹RedGuard,是一款C2設施前置流量控制技術的衍生作品,有著更加輕量的設計、高效的流量交互、以及使用go語言開發具有的可靠兼容性。它所解決的核心問題也是在面對日益復雜的紅藍攻防演練行動中,給予攻擊隊更加優秀的C2基礎設施隱匿方案,賦予C2設施的交互流量以流量控制功能,攔截那些“惡意”的分析流量,更好的完成整個攻擊任務。RedGuard是一個C2設施前置流量控制工具,可以避免Blue Team,AVS,EDR,Cyberspace Search Engine的檢查。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类