Go语言技术文章
-
讲清 govulncheck 如何把依赖模块中的已知漏洞分成实际可达调用与仅被依赖两类,并结合调用栈、构建标签、源码与二进制扫描边界,给出升级、移除调用和复扫的实用判断清单。283 收藏 -
Go 基准测试变快不等于线上服务变快,本文从 CPU 配额、GOMAXPROCS、GOGC、输入规模、缓存命中和 pprof 指标对照出发,给出一套可重复的排查清单。152 收藏 -
Go 执行跟踪能把 goroutine 的创建、运行、阻塞、唤醒、系统调用和 GC 事件放在同一时间语义下。本文通过一个尾延迟复盘示例,讲清 sched、sync、net、syscall 派生 profile 的用法,以及如何从事件栈定位调度等待与阻塞根因。228 收藏 -
Go 缓存与泄漏在 GC 看来都是可达对象。本文从 heap profile 的增长分配栈出发,沿根引用、容器和业务对象还原持有链,并用容量、TTL、清空及取消实验验证释放边界。206 收藏 -
Go 堆快照要同时查看 inuse_space 与 alloc_space。本文用相近负载下的多次采样、GC 对齐和 pprof 差异报告,区分高频短命分配、稳定常驻集与持续增长的长期持有。382 收藏 -
Go pprof 火焰图中占比最高的函数不一定是最佳优化点。本文结合 flat、cum、调用路径和业务基线,说明如何判断真正值得优化的 CPU 热点并安全复测。282 收藏 -
CPU Profile 只能定位 CPU 采样热点,不能单独证明优化收益。本文用固定工作负载、重复 Benchmark、benchstat 与前后 Profile 对比建立验证链,避免单次数据、环境漂移和热点转移造成误判。474 收藏 -
Go TLS 热更新证书不会让已经完成握手的旧长连接立即失效;新证书主要作用于后续握手,而恢复会话还有票据边界。本文按连接生命周期说明原子更新、失败回退、会话恢复与连接排空策略。209 收藏 -
Go crypto/tls 中,MinVersion 和 MaxVersion 控制协议版本,CipherSuites 只影响 TLS 1.0–1.2。本文给出兼顾 TLS 1.2、TLS 1.3 与旧客户端的配置方法、选型表和排错边界。427 收藏 -
Golang · Go问答 | 1星期前 | 网络编程 · https · Go问答 · tls Go 证书校验 RootCAs VerifyConnection InsecureSkipVerify
Go 的 InsecureSkipVerify 会跳过服务端证书链和主机名校验,短期能绕过握手错误,却把中间人风险带进连接。本文按证书链、私有 CA、ServerName 与 VerifyConnection 的职责,给出更安全的替代方案和上线检查清单。125 收藏 -
本文用 tls.Config.GetCertificate 与 atomic.Pointer 构建 Go HTTPS 证书热更新:监听端口持续运行,SIGHUP 触发加载,新证书通过密钥、有效期和主机名检查后才原子替换;失败保留旧证书,并说明既有连接、SNI、多证书和上线观测边界。243 收藏 -
Go 客户端提示证书主机名不匹配时,证书可能仍在有效期内且签发链可信。本文拆解实际校验名、DNS/IP SAN、Common Name、通配符、SNI 与代理选证书,并给出安全诊断程序和固定 IP 拨号的正确配置。180 收藏 -
Go 内部 HTTPS 服务使用自建 CA 时,不要把 InsecureSkipVerify 设为 true。本文用 SystemCertPool 与 AppendCertsFromPEM 合并信任根,配置 RootCAs,保留主机名校验,并整理证书 SAN、PEM 解析和部署路径的排查边界。332 收藏 -
Go html/template 会按 HTML、URL 和 JavaScript 上下文自动转义,动态属性出现 #ZgotmplZ 往往是安全保护而非模板损坏。本文用最小示例说明如何定位上下文、改用数据驱动和控制可信类型边界。176 收藏 -
Go 多层模板迁移到 embed.FS 后,可在启动期解析公共布局,再为每个页面 Clone 独立模板集合并覆盖 content 块。本文给出目录结构、完整渲染器、变更风险与回归清单,避免工作目录依赖和同名定义串页。245 收藏