Go语言技术文章
-
Go 的 httptest.ResponseRecorder.Code 为 0 不一定代表接口返回了 0。处理器没有显式写状态或响应体时,应在执行结束后调用 Result().StatusCode 读取隐含的 200,并理解 Code、HeaderMap 与 Result 的边界。300 收藏 -
Go 的 map 参数仍然按值传递,但参数副本与调用者共享底层数据,所以修改键值会被调用者看到;重新绑定参数则不会替换调用者的 map。300 收藏 -
reflect.Value 的 panic 往往来自前置条件不成立。本文用 CanAddr、CanSet、CanInterface 分层解释可寻址性,并给出结构体字段安全赋值、nil 与类型错误处理及回归检查清单。300 收藏 -
用 Go afero 的 BasePathFs 为导出逻辑建立工作目录边界,演示相对路径写入、父目录创建、越界失败和安全边界判断。300 收藏 -
用 Go 的 base64.RawURLEncoding 生成不带等号的 URL 安全令牌,讲清字母表、编码解码、填充兼容和长度错误的处理边界。300 收藏 -
Go 的 tls.Config.ServerName 为空时,默认安全校验无法确定要匹配的主机名,握手会在证书校验前失败。本文拆开 SNI、拨号地址、SAN 和 RootCAs,给出直连 IP 与自定义拨号的正确配置。299 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · 模板 · web安全 · Go教程 · Go html/template 用户输入 HTML转义 html.EscapeString 上下文转义
Go 中将用户文本安全显示到 HTML 页面,可在明确的文本节点场景使用 html.EscapeString;页面模板更适合交给 html/template 按上下文自动转义。本文用最小留言页讲清实现、验收与边界。299 收藏 -
用 Go 标准库 suffixarray.Index.Lookup 查找重复字节片段,讲清 n 参数、无序偏移、字节下标和空结果边界,并给出可直接改造的示例。299 收藏 -
用 Checker v2 在 Go 结构体标签中组合 trim、lower、required、email 和跨字段规则,让请求数据先清洗再校验,并统一输出结构化错误。299 收藏 -
Go循环拼接怎样减少临时分配?从字节预算、Grow预留和WriteString用法入手,说明结果持有、禁止复制与Reset边界,并给出分配比较方法。299 收藏 -
Go TLS 中 InsecureSkipVerify 只影响客户端验证服务端证书链和主机名,服务端客户端证书校验应看 ClientAuth 与 ClientCAs。298 收藏 -
Go context 的子任务不是重新获得一段独立超时,而是受父 Context 更早 deadline 约束。本文用可观察的 deadline、Err 和 Cause 排查提前 deadline exceeded,并给出按剩余预算创建子任务的写法。298 收藏 -
解释 Go io.TeeReader 如何同步把读取内容写入旁路 Writer,以及写入失败为何会从 Read 返回,并给出 n、err、部分写入和重试边界。298 收藏 -
json.Decoder.InputOffset 给出当前解码边界;语法或类型错误则应优先使用对应错误的 Offset。文章提供安全截取附近原始字节、处理流式输入和 UTF-8 字节位置的完整方法。298 收藏 -
unsafe.Slice 的 len 参数决定返回切片的长度和容量,计算时若混用元素数与字节数,或发生整数溢出,就可能把访问范围带出原始对象。本文按指针来源、Sizeof 换算、nil 特例和边界测试逐步定位并修正。298 收藏