Go语言技术文章
-
CrossOriginProtection 并不会仅因缺少 Origin 而拒绝请求。本文结合 Go net/http 当前规则,说明 Sec-Fetch-Site、Origin、Host、请求方法与 403 排查方法。186 收藏 -
Go 1.25 的 net/http.CrossOriginProtection 可在业务处理器前拒绝非安全的跨站浏览器请求。本文说明判断规则、Handler 接入方式、可信 Origin 配置与兼容边界,并给出适合 Cookie 会话表单写接口的完整示例。245 收藏 -
os.Root 支持多个 goroutine 并发调用,但 Close 不是业务停机屏障。本文结合官方文档与源码说明在途操作、后续调用和已打开文件的不同结果,并给出先停止准入、排空任务、最后关闭 Root 的实现。461 收藏 -
用 Go 1.24 的 os.OpenRoot 建立插件目录边界,通过 Root 方法和 Root.FS 读取相对文件,处理路径遍历、符号链接、资源关闭及挂载点等实际限制。104 收藏 -
filepath.Clean 只处理路径字符串,不解析软链接、权限和真实文件系统状态。本文按路径生命周期解释 os.Root 仍会拒绝访问的原因,并给出可移植的校验与错误处理写法。329 收藏 -
本文从零实现一个 Go 归档展开小工具:用 os.Root 限制落盘范围,只接受目录和普通文件,并通过路径白名单、文件数量、单文件大小与总展开量控制用户上传风险。441 收藏 -
Go os.Root 会跟随根目录内的软链接,但每次打开仍会校验最终目标是否留在边界内。本文用三类链接、错误分类与安全代码解释为什么边界错误是预期防护。306 收藏 -
Go 1.24 引入的 os.Root 可以把文件读写限制在上传目录内。本文对比 filepath.Join、os.OpenRoot 与 os.OpenInRoot 的使用边界,并说明符号链接、平台差异、性能和资源释放。200 收藏 -
Nil UUID 是 RFC 定义的特殊 UUID,也是 Go 中 uuid.UUID 的零值,但它并不自动等于业务缺失。本文从实体主键、可选关联、API 与数据库边界给出可落地的判定和建模规则。430 收藏 -
Go 标准库 uuid.UUID 本质是 16 字节数组。本文讲清 36 字节规范文本、32 字符兼容文本和 16 字节原始二进制的区别,并给出安全双向转换、格式选择与避坑代码。178 收藏 -
数据库里的 UUID 与 Go 结果不一致,通常是 MySQL swap_flag 或二进制字段映射不一致。本文用 HEX 对照、成对转换和 Go BINARY(16) 读写链路定位并修复字节顺序问题。478 收藏 -
用 Go 标准库 uuid 包校验外部标识符时,应把长度限制、Parse、规范文本策略、Nil 业务规则、稳定错误响应和安全日志放在同一入口。本文给出路径参数与 JSON 请求的生产化写法。290 收藏 -
Go 标准库 uuid.Parse 接受大小写等多种文本形式,但解析后保存的是 16 字节 UUID 值,String 会统一输出 RFC 9562 定义的小写连字符形式。本文说明比较、存储、日志、签名与原文保留边界。245 收藏 -
Golang · Go教程 | 6天前 | 标准库 · 数据库 · uuid · Go教程 · database/sql · Go标准库uuid uuid.New UUID数据库 BINARY(16) CHAR(36) uuid.Parse
Go 1.27 标准库 uuid 生成 UUID 后,如何根据数据库字段选择 BINARY(16) 或 CHAR(36),并完成参数绑定、查询读回和 uuid.Parse 校验。344 收藏 -
Golang · Go问答 | 6天前 | 并发安全 · goroutine · Go问答 · Go结构化并发 runtime/secret并发读取 secret.Do goroutine Go密钥生命周期 WaitGroup敏感数据
runtime/secret 会让作用域内新建的 goroutine 继承秘密模式,但不会替你同步共享切片。本文用结构化并发说明密钥只读共享、worker 独立状态、公开结果复制、取消等待与平台降级的正确边界。107 收藏