從 glibc 到 musl : 靜態編譯上的新選擇
前言
在 Go 世界裡,可移植性 一直是它引以為傲的特性。大部分時候,我們只要 go build
就能得到一個幾乎純靜態的二進位,拿去其他機器執行也不太會出問題。然而,這種「幾乎」背後,跟 cgo
和 cmd/link
的運作有很大關係。本文將以 cgo 為核心,延伸到 linkmode 與 musl-gcc 的應用,帶同學們理解 Go 執行檔在靜態與動態鏈結上的差異。
心之所至,隨意亂書
共有 6 篇文章使用了此標籤
在 Go 世界裡,可移植性 一直是它引以為傲的特性。大部分時候,我們只要 go build
就能得到一個幾乎純靜態的二進位,拿去其他機器執行也不太會出問題。然而,這種「幾乎」背後,跟 cgo
和 cmd/link
的運作有很大關係。本文將以 cgo 為核心,延伸到 linkmode 與 musl-gcc 的應用,帶同學們理解 Go 執行檔在靜態與動態鏈結上的差異。
開發環境裡,我們常用 Docker Compose 來啟動資料庫。像是 PostgreSQL 這種服務,我們通常會這樣做:
1ports:
2 - "5432:5432"
這樣就能用 localhost:5432
直接連資料庫,簡單又方便。
最近在思考,如果我們不想把資料庫連接埠對外暴露,想完全在 Docker network 裡面連線。
但容器的 IP 每次重啟都不一樣,我們該怎麼辦?
答案是:別手動 docker inspect
,直接在 Go 裡用 Docker API 查 IP 就好。
查完 IP,再用它去連 PostgreSQL,完全自動化,安全又乾淨。
有時候我們登入服務時,螢幕會跳出一句:「你的驗證碼是 123456」。這串數字只能用一次,過了幾十秒就失效了。這種機制叫做 OTP(One-Time Password,一次性密碼)。
它看似簡單,卻是今天大多數二階段驗證(2FA)或多因子驗證(MFA)的基石。這篇文章,就來聊聊 OTP 的運作方式,最後會給一個 Go 的範例程式,讓你自己動手試試。
「把密碼換成裝置裡的私鑰」——這就是 Passkey 的核心概念。 我們用最小可行的方式,寫一個可以真的註冊與登入的 WebAuthn 小服務。
在網站應用中,表單或登入功能常常成為機器人攻擊的目標。 Google reCAPTCHA Enterprise 提供了更安全且彈性的防護方式,能透過 風險評分 (Score) 來判斷使用者行為是否可信。
最近又要開始接觸到網頁的東西了! 久沒有碰要再花一點時間回想。想說就趁著這次順手記錄起來吧。