推荐一篇刚读完的文章,讲 Go JSON/XML/YAML 序列化/反序列化的坑,介绍了很多由于标记失误、不同的库反序列化结果不一致、使用错误 parser 之类的问题导致的安全问题

还有些我完全没想到的东西,比如 Go 的 JSON 反序列化支持自动把 Unicode 字母转换成 ASCII,比如你可以用拉丁字母 ſ 代替小写 s,可以用 Kelvin 单位 代替字母 k ;而且 Go 的 parser 不分大小写,假如你的 struct field 是 Actions,JSON 可以是 "aCTiOnſ"(草这都什么设计

其实很多提到的点对 Go 以外的很多情况也都适用,在 JSON RPC 这么流行的当下还是值得一读的

https://blog.trailofbits.com/2025/06/17/unexpected-security-footguns-in-gos-parsers/
 
 
Back to Top