第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有條件地打印包含敏感數據的調試信息

有條件地打印包含敏感數據的調試信息

Go
守著一只汪 2022-09-26 19:54:58
我正在運行一個Go程序作為工作。k8s應用程序向集群發(fā)送 API 請求以創(chuàng)建用戶,因此它將包含敏感數據(用戶密碼)。elasticsearch    requestDump, err := httputil.DumpRequest(req, true)    responseDump, err := httputil.DumpResponse(resp, true)    esapiClient.log.Printf("got response code %d when creating user: %s\n", resp.StatusCode, user.Username)    if resp.StatusCode != http.StatusOK {        esapiClient.log.Printf("error: got response code: %d when creating user %s\n", resp.StatusCode, user.Username)        esapiClient.log.Println("Request\n", string(requestDump))        esapiClient.log.Println("Response\n", string(responseDump))        return ErrResponseCode    }當事情向南發(fā)展時,我希望能夠轉儲請求和響應(特別是在情況下)以檢查出了什么問題(主要是潛在的格式錯誤的請求)。400推薦的執(zhí)行此操作方法是什么?日志級別是解決此問題的唯一方法嗎?
查看完整描述

1 回答

?
米脂

TA貢獻1836條經驗 獲得超3個贊

日志級別是非解決方案。您的目標應該是不要讓 PII(個人身份信息)完全進入日志轉儲,包括當您在調試模式下啟動服務時。


根據您執(zhí)行日志記錄的方式,只需在結構上實現相關接口,并省略或密文包含 PII 的字段。如果需要對原始值有一些了解以進行調試的字段,則只能對其進行部分密文。


例如,如果使用謂詞或類似詞登錄,則可以實現該接口:fmtStringer


type User struct {

    Name     string

    Password string

}


func (u User) String() string {

    return fmt.Sprintf("{%s %s}", u.Name, "*****")

}



func main() {

    u := User{"pkaramol", "secret"}

    fmt.Println(u) // {pkaramol *****}

    

}

如果您登錄 JSON,請實施以進行密文,或使用結構標記省略:MarshalJSONjson:"-"


func (u User) MarshalJSON() ([]byte, error) {

    return json.Marshal(map[string]interface{}{

        "name": u.Name,

        "password": "*****",

    })

}


func main() {

    u := User{"pkaramol", "secret"}

    b, _ := json.Marshal()

    fmt.Println(string(b)) // {"name":"pkaramol","password":"*****"}

}


查看完整回答
反對 回復 2022-09-26
  • 1 回答
  • 0 關注
  • 72 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號