Go问答技术文章
-
C 回调进入 Go 时,关键不是猜线程会不会变化,而是明确运行时接入、线程局部状态、C 指针生命周期、cgo.Handle 和停机顺序。271 收藏 -
cgo 的固定边界成本、指针与转换规则会在细碎调用中被放大。本文用调用计数、基准和 profile 分层定位,并示范把逐元素调用改成安全的批量接口。361 收藏 -
C 位于 Go 垃圾回收器的对象图之外,不能在 cgo 调用结束后随意保存普通 Go 指针。本文从 GC 可追踪性、固定内存和嵌套指针三个不变量出发,对比同步借用、复制到 C 堆、runtime.Pinner 与 runtime/cgo.Handle,并给出代码、风险表和审计清单。236 收藏 -
第三方 Go 模块停止维护后,不要只看更新时间做决定。本文从 API 兼容性、修复责任和迁移成本出发,比较替换、分叉与适配器隔离三种方案,并给出 go.mod、fork 和 govulncheck 的落地检查点。357 收藏 -
安全扫描通过不等于 Go 服务已经安全。本文说明 govulncheck、go vet、竞态检测和模糊测试各自能证明什么、有哪些盲区,并给出分层 CI 门禁与复查清单。126 收藏 -
Go 依赖扫描命中漏洞但 govulncheck 未发现可达调用时,本文给出升级与临时豁免的判断矩阵、证据清单、到期机制和复扫方法。127 收藏 -
Go 基准测试变快不等于线上服务变快,本文从 CPU 配额、GOMAXPROCS、GOGC、输入规模、缓存命中和 pprof 指标对照出发,给出一套可重复的排查清单。152 收藏 -
Go 缓存与泄漏在 GC 看来都是可达对象。本文从 heap profile 的增长分配栈出发,沿根引用、容器和业务对象还原持有链,并用容量、TTL、清空及取消实验验证释放边界。206 收藏 -
Go pprof 火焰图中占比最高的函数不一定是最佳优化点。本文结合 flat、cum、调用路径和业务基线,说明如何判断真正值得优化的 CPU 热点并安全复测。282 收藏 -
Go TLS 热更新证书不会让已经完成握手的旧长连接立即失效;新证书主要作用于后续握手,而恢复会话还有票据边界。本文按连接生命周期说明原子更新、失败回退、会话恢复与连接排空策略。209 收藏 -
Golang · Go问答 | 1星期前 | 网络编程 · https · Go问答 · tls Go 证书校验 RootCAs VerifyConnection InsecureSkipVerify
Go 的 InsecureSkipVerify 会跳过服务端证书链和主机名校验,短期能绕过握手错误,却把中间人风险带进连接。本文按证书链、私有 CA、ServerName 与 VerifyConnection 的职责,给出更安全的替代方案和上线检查清单。125 收藏 -
Go 客户端提示证书主机名不匹配时,证书可能仍在有效期内且签发链可信。本文拆解实际校验名、DNS/IP SAN、Common Name、通配符、SNI 与代理选证书,并给出安全诊断程序和固定 IP 拨号的正确配置。180 收藏 -
Go html/template 会按 HTML、URL 和 JavaScript 上下文自动转义,动态属性出现 #ZgotmplZ 往往是安全保护而非模板损坏。本文用最小示例说明如何定位上下文、改用数据驱动和控制可信类型边界。176 收藏 -
Go 模板遇到缺失数据时可继续输出、返回元素零值或立即报错。本文解释 missingkey 三种策略、map 与 struct 的边界,并给出严格渲染、缓冲输出和表驱动测试方案。 223 收藏 -
从输出目标、上下文转义、危险 URL 和 template.HTML 信任边界对比 Go 的 html/template 与 text/template,给出迁移和选型清单。245 收藏