- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我收到以下信息 golintci
信息:
testdrive/utils.go:92:16: G110: Potential DoS vulnerability via decompression bomb (gosec)
if _, err := io.Copy(targetFile, fileReader); err != nil {
^
阅读对应的
CWE我不清楚这将如何得到纠正。
func unzip(archive, target string) error {
reader, err := zip.OpenReader(archive)
if err != nil {
return err
}
for _, file := range reader.File {
path := filepath.Join(target, file.Name) // nolint: gosec
if file.FileInfo().IsDir() {
if err := os.MkdirAll(path, file.Mode()); err != nil {
return err
}
continue
}
fileReader, err := file.Open()
if err != nil {
return err
}
defer fileReader.Close() // nolint: errcheck
targetFile, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, file.Mode())
if err != nil {
return err
}
defer targetFile.Close() // nolint: errcheck
if _, err := io.Copy(targetFile, fileReader); err != nil {
return err
}
}
return nil
}
最佳答案
您收到的警告来自 gosec 中提供的规则.
该规则专门检测 io.Copy
的使用情况关于文件解压。
这是一个潜在的问题,因为 io.Copy
:
copies from
src
todst
until either EOF is reached onsrc
or an error occurs.
io.Copy
的使用情况。或
io.CopyBuffer
连同以下任何一项:
"compress/gzip".NewReader
"compress/zlib".NewReader
或 NewReaderDict
"compress/bzip2".NewReader
"compress/flate".NewReader
或 NewReaderDict
"compress/lzw".NewReader
"archive/tar".NewReader
"archive/zip".NewReader
"*archive/zip".File.Open
io.CopyN
删除警告,因为(引用)它“将 n 个字节(或直到出现错误)从 src 复制到 dst”,从而让您(程序编写者)控制要复制的字节数。所以你可以传递一个任意大的
n
您根据应用程序的可用资源进行设置,或
copy in chunks .
关于go - G110 : Potential DoS vulnerability via decompression bomb (gosec),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67327323/
我一直在尝试导入名为 Winter Forest Envoriment 的 Assets ,每次单击导入时都会出现错误“导入包失败,出现错误:无法解压缩包UnityEngine.GUIUtility:
我想编写一个函数,它接受一个压缩字符串并输出解压缩字符串。 像 a2b2c3 这样的压缩字符串解压字符串为 aabbccc更多的例子是 `a` -> `a` `ab12` -> `abbbbbbbbb
我正在尝试使用 Swift 压缩包解压缩 lz4 压缩的 png 图像,但代码以零大小退出。 我的代码如下,解压后的文件预计为240Kb。 [更新 2] 我在 Apple 的文档中偶然发现了这一点:
我正在尝试使用 kafka-python。它要求安装 Snappy。所以我安装它 pip 安装 snappy pip 安装 python_snappy-0.5.2-cp36-cp36m-win_amd
我正在尝试解压缩 MySQL 的 COMPRESS 函数返回的值: SQLQuery query = session .createSQLQuery("SELECT ID, C
我正在尝试使用 Go 创建压缩字符串池。这是我的代码 - http://play.golang.org/p/T5usLfU0fA 我无法解压用 compress/lzw 包压缩的 bin。 lzw.W
我读过这篇 SO post无济于事。 我正在尝试解压缩来自 URL 的 .gz 文件。 url_file_handle=StringIO( gz_data ) gzip_file_handle=gzi
本文整理了Java中loci.formats.codec.ZlibCodec.decompress()方法的一些代码示例,展示了ZlibCodec.decompress()的具体用法。这些代码示例主要
在 ubuntu 19.04 上安装 Cassandra 3.11 版本后,一旦我启动命令 cqlsh,我就会收到以下错误 root@dnilesh:/etc/cassandra# cqlsh Con
我想将一些字节数据插入到 mysql VARBINARY 列中。数据很大,所以我想以压缩的方式存储它。 我正在使用 Percona 5.6 Mysql。我想用Java模拟mysql的COMPRESS函
我可以在python中解压从mysql压缩的数据吗? MySQL 5.6 select to_base64(compress("test")); 来自mysql的结果 BAAAAHicK0ktLgEA
http://php.net/manual/en/phar.decompress.php decompress(); // creates /path/to/my.phar ?> $p2 第一次用在代
我使用 Pillow 库创建缩略图。我必须创建很多,实际上超过 10.000 程序运行良好,但在处理大约 1.500 后,出现以下错误: Traceback (most recent call
我正在尝试使用 LzmaLib带有缓冲区的 LzmaCompress() 和 LzmaDecompress(),改编提供的示例 here . 我正在测试一个 ~3MB 的缓冲区,压缩函数似乎工作正常(
我是一名刚毕业的 SWE,正在学习 Go(并且喜欢它)。 我正在为维基百科转储文件构建一个解析器——基本上是一个巨大的 bzip2 压缩 XML 文件(~50GB 未压缩)。 我想同时做流式解压和解析
我有一个从MySQL表中获取名称(字符串)和值(byte[])的查询。查询都在执行,因为如果我在最后一行放上断点,我就可以查看数据数据表,并看到填充了名称字段的记录。但是,值字段为空。。如果我从查询中
本文整理了Java中net.spy.memcached.transcoders.WhalinV1Transcoder.decompress()方法的一些代码示例,展示了WhalinV1Transcod
本文整理了Java中net.spy.memcached.transcoders.WhalinTranscoder.decompress()方法的一些代码示例,展示了WhalinTranscoder.d
本文整理了Java中com.github.luben.zstd.Zstd.decompress()方法的一些代码示例,展示了Zstd.decompress()的具体用法。这些代码示例主要来源于Gith
本文整理了Java中io.airlift.compress.zstd.ZstdDecompressor.decompress()方法的一些代码示例,展示了ZstdDecompressor.decomp
我是一名优秀的程序员,十分优秀!