Go问答技术文章
-
解释 Go testing.B.Loop 如何接管基准测试的迭代扩容、计时边界和防编译器消除职责,并说明 b.N 仍可在循环结束后用于自定义指标。497 收藏 -
B.Loop 只负责迭代与计时,不会恢复循环外可变状态。切片长度、容量、map 内容或缓冲区会跨轮累积,导致每次操作不再等价。本文用可运行示例区分新建成本与复用成本,并说明重置是否计时。105 收藏 -
说明 Go CrossOriginProtection 与 CORS 同时配置时的职责差异:前者决定非安全跨源请求能否进入业务处理器,后者决定浏览器能否跨源读取响应,并给出共享白名单、中间件顺序和测试矩阵。367 收藏 -
Golang · Go问答 | 3星期前 | 故障排查 · net/http · Go问答 · 反向代理 Sec-Fetch-Site Go CrossOriginProtection Origin Host 403误判
定位 Go CrossOriginProtection 在反向代理改写 Host、请求缺少 Sec-Fetch-Site 时的 403 误判,给出精确可信 Origin、Host 保留与安全测试方案。201 收藏 -
CrossOriginProtection 并不会仅因缺少 Origin 而拒绝请求。本文结合 Go net/http 当前规则,说明 Sec-Fetch-Site、Origin、Host、请求方法与 403 排查方法。186 收藏 -
os.Root 支持多个 goroutine 并发调用,但 Close 不是业务停机屏障。本文结合官方文档与源码说明在途操作、后续调用和已打开文件的不同结果,并给出先停止准入、排空任务、最后关闭 Root 的实现。461 收藏 -
filepath.Clean 只处理路径字符串,不解析软链接、权限和真实文件系统状态。本文按路径生命周期解释 os.Root 仍会拒绝访问的原因,并给出可移植的校验与错误处理写法。329 收藏 -
Go os.Root 会跟随根目录内的软链接,但每次打开仍会校验最终目标是否留在边界内。本文用三类链接、错误分类与安全代码解释为什么边界错误是预期防护。306 收藏 -
Nil UUID 是 RFC 定义的特殊 UUID,也是 Go 中 uuid.UUID 的零值,但它并不自动等于业务缺失。本文从实体主键、可选关联、API 与数据库边界给出可落地的判定和建模规则。430 收藏 -
数据库里的 UUID 与 Go 结果不一致,通常是 MySQL swap_flag 或二进制字段映射不一致。本文用 HEX 对照、成对转换和 Go BINARY(16) 读写链路定位并修复字节顺序问题。478 收藏 -
Go 标准库 uuid.Parse 接受大小写等多种文本形式,但解析后保存的是 16 字节 UUID 值,String 会统一输出 RFC 9562 定义的小写连字符形式。本文说明比较、存储、日志、签名与原文保留边界。245 收藏 -
Golang · Go问答 | 3星期前 | 并发安全 · goroutine · Go问答 · Go结构化并发 runtime/secret并发读取 secret.Do goroutine Go密钥生命周期 WaitGroup敏感数据
runtime/secret 会让作用域内新建的 goroutine 继承秘密模式,但不会替你同步共享切片。本文用结构化并发说明密钥只读共享、worker 独立状态、公开结果复制、取消等待与平台降级的正确边界。107 收藏 -
解释 Go 实验性 runtime/secret.Do 为什么不能让从回调返回的 string 自动被擦除,并给出把敏感计算收口、由调用者预分配结果空间和发布检查的做法。211 收藏 -
Go runtime/secret 的职责是及时擦除密码学调用树中的寄存器、栈和部分堆临时数据,缩短秘密材料在进程内存中的残留时间。它不提供密钥托管、访问控制、版本轮换、审计、撤销或恢复,因此应与 KMS/HSM 等密钥管理能力组合,而不是替代它们。290 收藏 -
go fix 负责源码现代化修复,gofmt 负责标准格式化。本文从执行顺序、分析器依赖和构建配置三个角度解释连续运行产生不同 diff 的原因,并给出可重复的审阅流程。196 收藏