【发布时间】:2019-02-18 14:26:59
【问题描述】:
如何解决来自gosec linter 的以下警告:
::warning: Potential file inclusion via variable,MEDIUM,HIGH (gosec)
linter 在这个函数的第一行警告我:
func File2lines(filePath string) ([]string, error) {
f, err := os.Open(filePath) //Warning here
if err != nil {
return nil, err
}
defer f.Close()
return linesFromReader(f)
}
我已尝试阅读本地文件包含,但看不到这将如何适用于此。
【问题讨论】:
-
您正试图通过一个可以是动态的变量打开一个文件,即,如果您的应用程序的用户正在提供
filePath,那么如果您正在执行一些脚本,您可能会受到影响提到的文件,如果你只是从文件中读取,那么你可以忽略警告,为了摆脱警告硬编码路径。 -
从任意文件读取也可能很危险——暴露数据、读取触发错误等
标签: go