Prevent decompression bomb This product is not supported for your selected
Datadog site . (
).
이 페이지는 아직 영어로 제공되지 않습니다. 번역 작업 중입니다.
현재 번역 프로젝트에 대한 질문이나 피드백이 있으신 경우
언제든지 연락주시기 바랍니다.
이 규칙을 사용해 보세요 ID: go-security/decompression-bomb
Language: Go
Severity: Warning
Category: Security
CWE : 409
Description Reading continuously from a compressed file without any limit of bytes may read too much data and lead to a denial of service (DoS). Prefer reading data by chunks of bytes.
Learn More Non-Compliant Code Examples package main
import (
"bytes"
"compress/bzip2"
"io"
"os"
)
func main () {
buff := [] byte { 42 , 51 }
b := bytes . NewReader ( buff )
r , err := zlib . NewReader ( b )
if err != nil {
panic ( err )
}
_ , err = io . CopyBuffer ( os . Stdout , r )
if err != nil {
panic ( err )
}
r . Close ()
}
package main
import (
"bytes"
"compress/zlib"
"io"
"os"
)
func main () {
buff := [] byte { 42 , 51 }
b := bytes . NewReader ( buff )
r , err := zlib . NewReader ( b )
if err != nil {
panic ( err )
}
_ , err = io . Copy ( os . Stdout , r )
if err != nil {
panic ( err )
}
r . Close ()
}
Compliant Code Examples package main
import (
"bytes"
"compress/bzip2"
"io"
"os"
)
func main () {
buff := [] byte { 42 , 51 }
b := bytes . NewReader ( buff )
r , err := zlib . NewReader ( b )
if err != nil {
panic ( err )
}
_ , err = io . CopyN ( os . Stdout , r , 64 )
if err != nil {
panic ( err )
}
r . Close ()
}
원활한 통합. Datadog Code Security를 경험해 보세요