使用存在安全问题的Go linter



我们使用以下库

import "crypto/sha1"

在运行golangci lint时,我们得到了以下错误:

G505: Blocklisted import crypto/sha1: weak cryptographic primitive (gosec) for "crypto/sha1"

G401: Use of weak cryptographic primitive (gosec)
sha := sha1.New()

有什么事情我可以做而不排斥他们吗?不确定我是否理解这些问题。如果它与安全无关,那么排除它就是简单的任务。。。

更新

我们正在做的是

fdrContent, err := ioutil.ReadFile(filepath.Join(path))
// gets the hashcode of the FDR file
h := sha1.New()
code, err := h.Write(fdrContent)
return code, err

我在自己的gtarsum项目中使用h.Write,如下所示:

h := sha256.New()
for {
buf := make([]byte, 1024*1024)
bytesRead, err := tr.Read(buf)
if err != nil {
if err != io.EOF {
panic(err)
}
}
if bytesRead > 0 {
_, err := h.Write(buf[:bytesRead])

如果没有明显的性能问题,您所要做的就是切换到sha256。
没有更多警告
这个问题来自sha1碰撞,我在这里已经记录了它,它来自shattered.io项目。

相关内容

  • 没有找到相关文章

最新更新