Go 发布了 1.14.5 和 1.13.13 版本,以解决两个最近报告的安全问题,建议所有用户更新到这两个版本之一。
主要解决的问题包括:
- 某些 net/http 服务器(包括 ReverseProxy)中的数据争用
处理程序同时读取请求主体并写入响应的服务器可能会遇到数据争用和崩溃。httputil.ReverseProxy 处理程序就受到了影响。此问题是 CVE-2020-15586,Go issue golang.org/issue/34902。
- X.509 验证会忽略 Windows 提供的 EKUs
在 Windows 上,如果 VerifyOptions.Roots 为 nil,则 Certificate.Verify 不会检查 VerifyOptions.KeyUsages 中指定的 EKU 要求。此问题是 CVE-2020-14039,Go issue golang.org/issue/39360。
即将发布的 Go 1.15rc1 版本也将包含上述修复程序。
发布公告:https://groups.google.com/forum/m/#!msg/golang-announce/XZNfaiwgt2w/E6gHDs32AQAJ
PHP7的耗时仅为Node.js的1/3,就连PHP5都比Node.js要快.
Go的耗时是PHP8的两倍还多,Go内存占用也更大.
export GOGC=off关闭GC,并初始化map长度,耗时408ms,依然比PHP慢,内存占用104m,依然比PHP大.
https://pic1.zhimg.com/80/v2-99b85c4672a7c0340287a4873f85431b_720w.jpg
测试内容主要包含时间戳获取,字符串拼接,关联数组生成这几个Web开发中经常用到的操作.
其中字符串连接和关联数组的生成,这两个主要跟语言的实现有关.
而时间戳的获取是一个系统调用,通过系统获取一个语言无法预期的变量(随机种子),来模拟真实的应用场景.